V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaochen2018
V2EX  ›  程序员

大家生产环境用 Docker 吗?

  •  
  •   xiaochen2018 · 2018-11-07 11:19:09 +08:00 · 26134 次点击
    这是一个创建于 2237 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近学习了一段时间 Docker,发现真是个好东西。比 Java 靠谱,真正一次构建,到处乱跑。

    镜像容器管理,省去了好多配置环境的工作。

    想问问各位大佬们平时在项目中用的多吗? 生产环境都用这个了吗?还是只是用来本地开发环境的。

    Docker 入门的一些小知识: http://h5ip.cn/8XPO

    111 条回复    2019-04-26 17:40:36 +08:00
    1  2  
    xiaochen2018
        1
    xiaochen2018  
    OP
       2018-11-07 11:21:05 +08:00
    求各位大佬推荐 Docker 进阶的书籍和课程
    glacer
        2
    glacer  
       2018-11-07 11:23:20 +08:00   ❤️ 27
    docker 比 Java 靠谱又是什么鬼
    Phariel
        3
    Phariel  
       2018-11-07 11:25:03 +08:00 via iPhone   ❤️ 6
    你第一句话就暴露了你的水平
    xiaochen2018
        4
    xiaochen2018  
    OP
       2018-11-07 11:25:10 +08:00   ❤️ 1
    @glacer Java 不是 write once,run everyone 嘛。哈哈
    xiaochen2018
        5
    xiaochen2018  
    OP
       2018-11-07 11:25:33 +08:00
    @Phariel Java 不是 write once,run everyone 嘛。
    maichael
        6
    maichael  
       2018-11-07 11:26:45 +08:00
    你在 Windows 折腾过 docker 吗?
    xiaochen2018
        7
    xiaochen2018  
    OP
       2018-11-07 11:27:55 +08:00 via iPhone
    @maichael 没有啊,都在 Ubuntu 和 MacOS 呢
    zjsxwc
        8
    zjsxwc  
       2018-11-07 11:27:59 +08:00 via Android   ❤️ 16
    铁锅比香肠好吃?
    xiaochen2018
        9
    xiaochen2018  
    OP
       2018-11-07 11:28:29 +08:00 via iPhone
    @zjsxwc 没有好的铁锅,做不好吃哈哈。求大佬指导
    fumichael
        10
    fumichael  
       2018-11-07 11:41:08 +08:00
    @glacer 就是,什么鬼嘛,我们都是在 linux 装一个 eclipse debug 的 [手动 doge]
    xiaochen2018
        11
    xiaochen2018  
    OP
       2018-11-07 11:42:39 +08:00 via iPhone
    @fumichael 哈哈哈哈
    xiaochen2018
        12
    xiaochen2018  
    OP
       2018-11-07 11:43:27 +08:00
    各位老哥们,能不能正面回答下问题啊,正式环境大家都用 Docker 吗?
    jmc891205
        13
    jmc891205  
       2018-11-07 11:47:31 +08:00   ❤️ 2
    write once, run anywhere/everywhere
    run everyone 是啥意思
    @xiaochen2018
    xiaoyaoking
        14
    xiaoyaoking  
       2018-11-07 11:49:46 +08:00 via Android
    编译环境用 docker,生产环境,本地小项目是跑过还挺稳定的。真正涉及业务的还没跑过。
    hasbug
        15
    hasbug  
       2018-11-07 11:50:58 +08:00
    学不懂
    boris1993
        16
    boris1993  
       2018-11-07 11:53:38 +08:00 via Android
    你的英语水平.............
    everyone - 所有人
    everywhere - 任何地方

    还比 Java 靠谱.......这俩根本就不是一类东西好吗喂!
    boris1993
        17
    boris1993  
       2018-11-07 11:54:25 +08:00 via Android   ❤️ 12
    @jmc891205 #13 意思是写的业务代码纯垃圾,一次部署,就全得跑路
    hlwjia
        18
    hlwjia  
       2018-11-07 11:54:37 +08:00
    @jmc891205 你不说我还没留意到他写错了
    fuxiaohei
        19
    fuxiaohei  
       2018-11-07 11:57:41 +08:00
    你需要找一些文章先看一遍 docker 生态,已经很健全了。
    大厂有大规模容器使用,不是什么新鲜的技术了。
    leconio
        20
    leconio  
       2018-11-07 11:59:49 +08:00 via Android
    用了 docker,解决了我 python 跑 web 一大痛点。顺便吐槽下,python 有跨平台和版本兼容吗???
    jjxh
        21
    jjxh  
       2018-11-07 12:02:50 +08:00
    #17 这个翻译满分
    Seanfuck
        22
    Seanfuck  
       2018-11-07 12:06:02 +08:00
    @xiaochen2018 我厂是用的,全部应用都用。
    des
        23
    des  
       2018-11-07 12:08:36 +08:00 via Android
    java 是一次编译,到处调试
    Mac
        24
    Mac  
       2018-11-07 12:09:19 +08:00 via Android
    楼主的意思是社区比开发商靠谱…?
    huclengyue
        25
    huclengyue  
       2018-11-07 12:10:11 +08:00 via Android
    docker 跟 java 有什么关系。。
    thet
        26
    thet  
       2018-11-07 12:37:41 +08:00 via Android
    业务全部 dockerize
    as94boy
        27
    as94boy  
       2018-11-07 12:39:43 +08:00
    @maichael 要哭的节奏,我是 win10 家庭版,最后直接不想搞了。去他的家庭版。
    hatsuyuki
        28
    hatsuyuki  
       2018-11-07 12:44:19 +08:00
    @Mac 社区当然比开发商靠谱
    xiaochen2018
        29
    xiaochen2018  
    OP
       2018-11-07 12:45:58 +08:00 via iPhone
    @hatsuyuki 哈哈哈,见仁见智
    xiaochen2018
        30
    xiaochen2018  
    OP
       2018-11-07 12:46:21 +08:00 via iPhone
    @thet 微服务分布式离不开了吧
    xiaochen2018
        31
    xiaochen2018  
    OP
       2018-11-07 12:52:54 +08:00
    @boris1993 哈哈哈 看走眼了,百度输入法智能提醒
    xpresslink
        32
    xpresslink  
       2018-11-07 12:52:56 +08:00
    现在在生产环境用的是很普遍的,通常互联网公司都在用。
    弹性资源占用是很大优势,需要持续集成快速迭代的项目通常都容器化部署。
    yx1989
        33
    yx1989  
       2018-11-07 12:53:27 +08:00
    在线业务全部 docker 化
    xiaochen2018
        34
    xiaochen2018  
    OP
       2018-11-07 12:54:06 +08:00
    @yx1989 好的呢,谢谢老哥
    xiaochen2018
        35
    xiaochen2018  
    OP
       2018-11-07 12:54:31 +08:00
    @xpresslink 谢谢,领教了
    zzzcx
        36
    zzzcx  
       2018-11-07 12:57:02 +08:00
    不仅仅是 docker,还用 k8s。。。
    Perry
        37
    Perry  
       2018-11-07 12:59:56 +08:00 via iPhone
    生产环境还得靠 k8s
    xiaochen2018
        38
    xiaochen2018  
    OP
       2018-11-07 13:05:05 +08:00 via iPhone
    @zzzcx 是的呢,最近也在看
    xiaochen2018
        39
    xiaochen2018  
    OP
       2018-11-07 13:05:25 +08:00 via iPhone
    @Perry 谢谢,领教了
    acoin
        40
    acoin  
       2018-11-07 13:06:59 +08:00 via Android   ❤️ 1
    @boris1993 楼主裤子都被你扒了 笑而不语 233
    lhx2008
        41
    lhx2008  
       2018-11-07 13:07:57 +08:00 via Android
    docker 在 win 上面就算了。。java 倒没啥事
    xiaochen2018
        42
    xiaochen2018  
    OP
       2018-11-07 13:14:36 +08:00
    @acoin 哈哈,没关系必须要有自嘲精神。没这么厚的脸皮我发毛帖子
    acoin
        43
    acoin  
       2018-11-07 13:41:31 +08:00
    @xiaochen2018 可以
    iyaozhen
        44
    iyaozhen  
       2018-11-07 13:48:01 +08:00
    有用,但是小问题比较多,对开发者有一定要求,还在吃螃蟹
    lmdtx
        45
    lmdtx  
       2018-11-07 14:04:32 +08:00
    再用 docker swarm
    yuanfnadi
        46
    yuanfnadi  
       2018-11-07 14:07:18 +08:00
    你知道 Mac 下面的 docker 其实是装了一个虚拟机么。
    xixijun
        47
    xixijun  
       2018-11-07 14:10:36 +08:00
    生产环境用的 k8s / docker-compose
    starsky007
        48
    starsky007  
       2018-11-07 15:03:15 +08:00 via Android   ❤️ 8
    人家不懂来问问,何必抓住一个小错不放呢,也不帮忙解答一下,阴阳怪气的
    vanishcode
        49
    vanishcode  
       2018-11-07 15:06:44 +08:00 via Android
    都是 k8s 咯
    guoyuchuan
        50
    guoyuchuan  
       2018-11-07 15:08:39 +08:00
    使用的人越来越多了
    xiaochen2018
        51
    xiaochen2018  
    OP
       2018-11-07 15:09:25 +08:00
    @starsky007 真心谢谢老哥了!感谢
    xiaochen2018
        52
    xiaochen2018  
    OP
       2018-11-07 15:09:53 +08:00
    @xixijun 是啊,Docker-compose 有用的。看来要学学 k8s
    acoin
        53
    acoin  
       2018-11-07 15:21:53 +08:00
    @xiaochen2018 Docker-compose 没法用集群吧 生产不应该是 swarm+stack 么
    Dzer0
        54
    Dzer0  
       2018-11-07 15:41:45 +08:00
    kubernetes 了解一下,可以上生产。
    mosesyou
        55
    mosesyou  
       2018-11-07 15:50:40 +08:00
    用的,我们还在 k8s 上层搭建自己的云平台
    puperSB
        56
    puperSB  
       2018-11-07 16:31:46 +08:00
    公司的大业务都上的 docker,bat 也有很成熟的方案。集群不一定用 k8s,swarm 也是可以尝试的
    znood
        57
    znood  
       2018-11-07 16:46:07 +08:00 via iPhone
    坑比较多,用起来就有坑了
    afc
        58
    afc  
       2018-11-07 16:47:39 +08:00   ❤️ 1
    docker 比 java 好是肯定的,但是没有 MySQL 好用。
    xmge
        59
    xmge  
       2018-11-07 17:00:25 +08:00
    my101du
        60
    my101du  
       2018-11-07 17:06:37 +08:00
    弱鸡请教下大家关于 docker 部署相同代码到不同机器后, 配置文件维护的问题:

    一套代码,不同的配置参数(.env 文件,以及 nginx 的虚拟主机配置文件,ssl 证书相关)。
    使用 githook + genkins, 实现推送一次更新,多个服务器自动更新文件、重启容器。
    但是,那一大堆配置文件维护起来很痛苦啊。 要改动一个参数,还是得 SSH 登录到每台服务器上去修改。

    我现在的办法是把这些配置文件也做成 git 仓库,更新后用 jenkins 去覆盖。。。。总感觉不对。。
    xpresslink
        61
    xpresslink  
       2018-11-07 17:24:39 +08:00   ❤️ 1
    @my101du
    你需要一个集成调度的库来存放配置信息,在启动容器的时候把参数传入,比较常见的是用环境变量方式。有一些则需要用中间件,比如 consul 来保存配置信息,容器内的应用从 consul 拉取配置。
    liuxliang
        62
    liuxliang  
       2018-11-07 17:27:15 +08:00
    k8s+gitlabci+docker
    arrow8899
        63
    arrow8899  
       2018-11-07 17:32:09 +08:00   ❤️ 1
    @my101du 为什么还要配虚拟主机和 ssl 呢,服务间调用直接走服务发现 RPC 调用吧,然后业务配置参数可以用携程 Apollo,配置文件可以用 Spring Cloud Config,哪有你这么复杂
    realpg
        64
    realpg  
       2018-11-07 18:50:26 +08:00
    不用。。。
    tomxin7
        65
    tomxin7  
       2018-11-07 18:51:32 +08:00
    个人项目用 docker
    zhangalong69
        66
    zhangalong69  
       2018-11-07 18:54:21 +08:00
    开发和测试环境用 docker,正式环境还是用的物理机
    AmorZhang
        67
    AmorZhang  
       2018-11-07 18:58:25 +08:00   ❤️ 2
    真要比起来 还是 css 靠谱
    szetrov
        68
    szetrov  
       2018-11-07 19:09:50 +08:00
    玩玩可以,拿它当个终端虚拟机。。。真正发挥容器化威力的地方我还没了解过
    mritd
        69
    mritd  
       2018-11-07 19:17:56 +08:00 via iPhone
    线上 k8s 集群
    mritd
        70
    mritd  
       2018-11-07 19:18:42 +08:00 via iPhone
    @szetrov #68 k8s 集群弹性扩容,自动迁徙了解一下
    kslr
        71
    kslr  
       2018-11-07 19:37:58 +08:00   ❤️ 1
    @my101du etcd
    owenliang
        72
    owenliang  
       2018-11-07 19:43:53 +08:00 via Android
    这两天看跨节点网络的方案,真是天坑。
    HelloAmadeus
        73
    HelloAmadeus  
       2018-11-07 19:48:43 +08:00 via Android
    公司内部产品全部上 kubernets 了,有些客户也切换成 kuberbets 了
    xiaochen2018
        74
    xiaochen2018  
    OP
       2018-11-07 19:56:10 +08:00 via iPhone
    @afc 相辅相成哈哈
    salamanderMH
        75
    salamanderMH  
       2018-11-07 20:04:18 +08:00
    k8s
    twl007
        76
    twl007  
       2018-11-07 22:39:22 +08:00 via iPhone   ❤️ 1
    @my101du 切换到 k8s 上 然后用 helm 管理 写一个生成不同机器上 values 模板的脚本就行了 我们又跟你一样的问题 就是通过动态生成 helm chart 的方式来解决的 更新的时候只需要把模板更新完脚本会根据模板自动创建不同的 helm chart
    feelinglucky
        77
    feelinglucky  
       2018-11-07 22:50:27 +08:00
    楼主拿 docker 和 java 比估计是「虚拟机」的概念搞混了吧…
    yuikns
        78
    yuikns  
       2018-11-07 23:05:01 +08:00
    docker 是基于 cgroup 的一个容器。这个概念又没什么难懂的。楼主就是想说 docker 在做开发-测试-生产环境一致性做得更加容易和彻底。

    kubernets 一键上线自动横向扩展就是容易。数据放到 oss 放到 hdfs 放到 s3 就是不怕事。


    https://pic3.zhimg.com/80/v2-c156cc46785bdbeb66c36db81751f2e2_hd.png


    😂
    yuikns
        79
    yuikns  
       2018-11-07 23:12:35 +08:00
    @yuikns 额.. 手快..
    docker 是基于 namespace, cgroup, device mapper 等的...
    Raymon111111
        80
    Raymon111111  
       2018-11-07 23:18:51 +08:00   ❤️ 1
    嗯 我也觉得 git 要比 Java 好用
    xoxo419
        81
    xoxo419  
       2018-11-07 23:28:51 +08:00
    生产上用上了, 但是现在有点箱撤下了. 不是说 docker 不好 只是宝刀还需要一个能驾驭的人.....

    现在有些问题就卡了~
    fundebug
        82
    fundebug  
       2018-11-07 23:48:17 +08:00   ❤️ 1
    RobertYang
        83
    RobertYang  
       2018-11-08 00:21:14 +08:00 via Android
    胡说我们浏览器也比 Java 靠谱
    tnt666666
        84
    tnt666666  
       2018-11-08 00:46:00 +08:00 via Android
    为什么现在人才这么多?
    shanigan
        85
    shanigan  
       2018-11-08 04:02:47 +08:00
    docker 最重要的一点优势不就是 containerization? 让开发测试生产环境一致,更加 portable。有什么理由在开发环境用 docker,生产环境不用呢?如果你的 host 都是 linux,docker 对性能的影响几乎可以忽略不计,完全没理由不用。加上 kubernetes 这些 orchestration tool 的帮忙,非常容易 scale up。
    xuanbg
        86
    xuanbg  
       2018-11-08 07:51:54 +08:00
    @my101du 你需要一个配置中心
    LinkT
        87
    LinkT  
       2018-11-08 08:07:35 +08:00 via Android
    此贴是个照妖镜。
    my101du
        88
    my101du  
       2018-11-08 08:58:06 +08:00
    @xpresslink @liuxliang @arrow8899 @kslr @twl007 @xuanbg 一并感谢!! 各种思路百花齐放啊。。。
    xiaochen2018
        89
    xiaochen2018  
    OP
       2018-11-08 09:00:30 +08:00 via iPhone
    @LinkT 哈哈,有意思。照妖镜
    xiaochen2018
        90
    xiaochen2018  
    OP
       2018-11-08 09:01:25 +08:00 via iPhone
    谢谢楼上的各位的经验
    xiaochen2018
        91
    xiaochen2018  
    OP
       2018-11-08 09:05:57 +08:00 via iPhone
    @shanigan 非常感谢,领教啦
    cyril4free
        92
    cyril4free  
       2018-11-08 09:33:02 +08:00
    个人感觉结合微服务才能发挥 docker 的最大功力。。之前的项目跑在 docker 里,反而会被束缚
    37Y37
        93
    37Y37  
       2018-11-08 09:42:09 +08:00
    我也也用了一年多,这里有介绍基于 Docker 构建的整个 devops 流
    https://mp.weixin.qq.com/s/GATfwNETo_aGsJHZdV5YzQ
    virus94
        94
    virus94  
       2018-11-08 10:13:13 +08:00
    战略 mark,一个 phper 在学 docker 0.0
    genjigjj
        95
    genjigjj  
       2018-11-08 10:15:34 +08:00
    反正我公司在用,确实挺好用的
    shuizhengqi
        96
    shuizhengqi  
       2018-11-08 10:27:04 +08:00
    所以是为了宣传自己网站喽,顺便说一句,并不是所有情况都是 docker 好用
    nekoneko
        97
    nekoneko  
       2018-11-08 12:54:16 +08:00
    我们的客户只给提供 Windows Server 服务器,docker 无缘了。。
    will0404
        98
    will0404  
       2018-11-08 12:56:24 +08:00
    怎么阴阳怪气的人这么多也没人给楼主纠正一下。。。

    一个是容器,一个是开发语言,前面的人嘲讽你是因为这两不应该放在一起比较。就像那位说‘铁锅比香肠好吃
    ’一样。楼主懂了吗。
    xiaochen2018
        99
    xiaochen2018  
    OP
       2018-11-08 12:57:52 +08:00 via iPhone
    @will0404 哈哈哈我当然知道啊,就是想调侃一下 Java
    ericgui
        100
    ericgui  
       2018-11-08 13:06:30 +08:00
    v 站也被知乎带坏了,开始到处怼人了,这不好。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2623 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 15:26 · PVG 23:26 · LAX 07:26 · JFK 10:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.