能例举一些Docker的使用场景吗

67 views
Skip to first unread message

Yang Fan

unread,
Nov 11, 2014, 12:38:54 AM11/11/14
to sh...@googlegroups.com
快速看了一遍Docker的入门教程,然后开始迷惑了,什么情况下使用Docker会比传统的物理机/虚拟机有明显的好处呢?

--
Regards,
Fan Yang

DaboD

unread,
Nov 11, 2014, 2:29:47 AM11/11/14
to sh...@googlegroups.com
輕量, 內存, CPU 耗用, 相對來得低. 資源的配置不用在啟動 container 時就完成. 單一機器上啟動的 container 密度會高於一般的 vm. 另外是隔離機制是由 kernel 完成, 只要在 3.8 以後的基本上就能提供完整的 container 機制, 不需硬件輔助加速.

但, 因為是共用 kernel, 所以安全性上沒有虛擬機來得高. 另外, container 中只能執行 linux 的玩意.

另外, docker 主要提供了一個社群, 大家把自己做好的 container 分享出來, 這樣在啟動一個新服務時會方便不少 (如果沒有牆的話...).

孑影

unread,
Nov 11, 2014, 2:35:05 AM11/11/14
to sh...@googlegroups.com
举个栗子,
你弄一个debian的开发环境,然后新人来了,直接弄一份给他,几百M,然后新人就直接可以开工干活了,而虚拟机也可以做,但是虚拟机一般都有10G+ 以上。

copy都要半天。

然后在高级点,可以自己架设repo hub ,然后环境可以统一管理。
#风起看云涌,叶落品人生#
> --
> -- You received this message because you are subscribed to the Google Groups
> Shanghai Linux User Group group. To post to this group, send email to
> sh...@googlegroups.com. To unsubscribe from this group, send email to
> shlug+un...@googlegroups.com. For more options, visit this group at
> https://groups.google.com/d/forum/shlug?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛中的“Shanghai Linux User Group”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

XiongJia Le

unread,
Nov 11, 2014, 3:14:27 AM11/11/14
to sh...@googlegroups.com
可以看一下这个应用: http://runnable.com/
他们的 github : https://github.com/Runnable

应该大量用了 Docker 得

您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

Shell Xu

unread,
Nov 11, 2014, 3:33:19 AM11/11/14
to shlug
逻辑错误。如果你的debian开发环境只有几百M,虚拟机是不可能重达10G以上的。如果虚拟机重达10G的话,你的开发环境根系统下大小是多大呢?
docker的意义不在这里。

您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout



--
彼節者有間,而刀刃者無厚;以無厚入有間,恢恢乎其於游刃必有餘地矣。
blog: http://shell909090.org/blog/

August

unread,
Nov 11, 2014, 3:36:34 AM11/11/14
to sh...@googlegroups.com

我觉得是,建个虚拟机至少占用10G的空间,虚拟机硬盘占10G,实际用到的开发环境并没有那么多

Shell Xu

unread,
Nov 11, 2014, 3:45:25 AM11/11/14
to shlug
但是虚拟机文件只占实际需要的空间略大的尺寸。

孑影

unread,
Nov 11, 2014, 3:50:44 AM11/11/14
to sh...@googlegroups.com
不是说省空间,
是说,配置好一个环境,很灵活,且不要用虚拟机那种重量的解决方案。


#风起看云涌,叶落品人生#

Shell Xu

unread,
Nov 11, 2014, 3:52:44 AM11/11/14
to shlug
如何重?

孑影

unread,
Nov 11, 2014, 3:57:37 AM11/11/14
to sh...@googlegroups.com
比如vbox 要迁移一份 虚拟文件到其他机器上面跑。
复制文件一般是不行的(两台不同机器)
需要到处成很大的一个ora 包
然后在花比较长时间导入。

用docker 后不用这样麻烦,通过dockerfile 是最轻的解决方法了,之一

还有就是若是搭建了repo hub ,可以直接 push / pull 这样,比vbox的解决方法要轻很多。


#风起看云涌,叶落品人生#

Shell Xu

unread,
Nov 11, 2014, 4:08:11 AM11/11/14
to shlug
一般复制文件就可以,我实际测试过。
如果不行,请用vagrant。

Chaos Eternal

unread,
Nov 11, 2014, 9:31:47 AM11/11/14
to sh...@googlegroups.com
container比虚拟机轻:
1. 内存是按需分配的,虚拟机一般是固定分配的
2. IO操作少两次memory copy, 速度快
3. 没有虚拟机内核的开销

至于说什么迁移文件少的, 一律烧死。

Chaos Eternal

unread,
Nov 11, 2014, 9:35:50 AM11/11/14
to sh...@googlegroups.com
不过吐槽一下,这个docker也是故弄玄虚。

明明就是unshare一下的事情,搞这么复杂

Wales Wang

unread,
Nov 11, 2014, 9:40:30 AM11/11/14
to sh...@googlegroups.com, sh...@googlegroups.com
还可以直接用cgroups和LXC

Wales Wang

Shell Xu

unread,
Nov 11, 2014, 10:10:47 AM11/11/14
to shlug
container最大的优点在于隔离多个环境的同时还能保持中间共享资源。这对于大型IT企业内部提高总体利用率是很有帮助的。
docker目前主流的模式还是veth模式,我测试了这种模式下的网卡性能,只有直接使用网卡的1/3,还不如虚拟机。要增强IO性能,必须用直接分配网卡的模式。而这种模式我还没跑起来过。
内核开销减少也带来了很蛋疼的问题,例如我想调整sysctl怎么办?这是个挺常见的需求吧。。。谁知道在container内调整sysctl会发生什么事情?

Liang Suilong

unread,
Nov 11, 2014, 11:56:58 AM11/11/14
to sh...@googlegroups.com

docker run 加 --net=host 参数?这样子的话 Container 会直接调用上 Host 上所有网卡,Container 的网络环境和 Host 接近一样。其实这样做法并不好,几个 Container 之间很容易有端口冲突。而且 Container 里 python2 的 socket.gethostbyname() 函数会直接报 gaierror。

另外吐槽一下暂时在 RH 系上用 Docker 需要特别注意,他家的 Docker 默认 Storage driver 是 devicemapper 特别不靠谱。同时启动多几个 Container,就很容易有一两个 Container 创建后里面的进程不跑了,Container 的 Status 既不是 Up 又不是 Exit 而是空白。用 aufs 或 btrfs 都靠谱多了。

其实有人在 Docker 用 systemd-nspawn 做 Exec Driver 吗?

Sent from Galaxy Tab Pro 10.1

Shell Xu

unread,
Nov 11, 2014, 12:10:05 PM11/11/14
to shlug
对。如果不这样,网络性能下降很厉害。但是加上后,我上次测试是跑不起来。看来你测试下来也不是完全没事。
为啥RH用devicemapper这种东西呢。aufs用下来还是很稳定的。

Felix Yan

unread,
Nov 11, 2014, 12:25:52 PM11/11/14
to sh...@googlegroups.com
On Wednesday, November 12, 2014 01:09:21 Shell Xu wrote:
> 对。如果不这样,网络性能下降很厉害。但是加上后,我上次测试是跑不起来。看来你测试下来也不是完全没事。

我这里有几台机器一直用着 --net=host, 里面跑的是 php / uwsgi, 端口冲突的问题暂时用 SO_REUSEPORT 解决了.
目前运行了几个月(有几个中小型服务), 没有发现其他问题.

Regards,
Felix Yan

signature.asc

Liang Suilong

unread,
Nov 12, 2014, 5:02:43 AM11/12/14
to sh...@googlegroups.com
我们这边的应用倒没有遇到很大的网络问题,只是之前调试时无意中发现这个问题,也没有深究是什么原因。

RH 用 devicemapper 的原因,我觉得是有几个方面:

1. Linus 巨巨一直拒绝 aufs 进入内核,而 RH 自己又不像 Debian 那样自己打补丁来编译 aufs 模块。
2. 早几个版本的内核 btrfs 还没有认为足够稳定。
3. 企业级 Linux 嘛,本来他们有一套 LVM 和 Software RAID 的工具,而这些工具又基于 devicemapper 用惯用熟了,那干脆直接用咯。

不过呢,在 docker 0.7~1.0 之间的版本,删除 Container 的时候,不时会出现对应的 aufs 文件系统无法 umount 的情况。在 Github 上也有不少人报过这个问题,而且都没有根本性解决。现在更新到 1.2,1.3 版本应该好很多吧。现在我主用 btrfs。

我个人觉得用 btrfs 是目前最好的选择。但是 CoreOS 各种工具缺失实在超级不方便。

Sent From My Heart
My Page: http://www.liangsuilong.info

Felix Yan

unread,
Nov 12, 2014, 6:17:45 AM11/12/14
to sh...@googlegroups.com
On Wednesday, November 12, 2014 18:02:19 Liang Suilong wrote:
> 不过呢,在 docker 0.7~1.0 之间的版本,删除 Container 的时候,不时会出现对应的 aufs 文件系统无法 umount
> 的情况。在 Github 上也有不少人报过这个问题,而且都没有根本性解决。现在更新到 1.2,1.3 版本应该好很多吧。现在我主用 btrfs。

我这里遇到过仅因为网络不稳定而产生一 mount 就 kernel panic 的 dm 分区, 以及直到现在 1.3.x 版本仍然还能遇到 dm 分区无法
umount 的问题 (使用最新的 3.17.x 内核).

目前我的服务器上都用的是 aufs (Ubuntu), 暂时没有遇到过这类问题.

Regards,
Felix Yan

signature.asc

依云

unread,
Nov 13, 2014, 3:24:21 AM11/13/14
to sh...@googlegroups.com
On Tue, Nov 11, 2014 at 05:07:26PM +0800, Shell Xu wrote:
> 一般复制文件就可以,我实际测试过。
> 如果不行,请用vagrant。

我也是直接复制虚拟硬盘文件的,没有问题。不过现在我更喜欢用 LXC 了,把
host 里的目录挂载到 LXC container 里相当方便。换 systemd 之后启动也很快=w=

--
Best regards,
lilydjwg

Shell Xu

unread,
Nov 13, 2014, 5:08:31 AM11/13/14
to shlug
用了四五年了,lxc。一直很稳定。我把一颗3T的磁盘直接挂进去当存储发出来的,还在里面配了一个owncloud出来,整个维护相当简单。
测试下来,开销低到无法测量。。。

--
-- You received this message because you are subscribed to the Google Groups Shanghai Linux User Group group. To post to this group, send email to sh...@googlegroups.com. To unsubscribe from this group, send email to shlug+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/shlug?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout
Reply all
Reply to author
Forward
0 new messages