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

大家生产环境用 Docker 吗?

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

最近学习了一段时间 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  
PRO
   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  
PRO
   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     Solana     3154 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 33ms UTC 10:55 PVG 18:55 LAX 03:55 JFK 06:55
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86