Docker 与 Vagrant 的区别?

2016-07-31 09:15:43 +08:00
 Bardon
刚开始听说 Docker 的时候,那个兴奋啊
一个容器引擎,与宿主机共享操作系统内核......
然而,现在使用中,还是直接拉一个系统镜像来开始工作......

或许,他们最大的区别还是在于生态?求解。
9466 次点击
所在节点    Docker
25 条回复
crysislinux
2016-07-31 09:20:27 +08:00
看你拿来干什么了。如果只是需要一个 image 来搭个用到 linux 的开发环境,那确实区别不大。。
RoshanWu
2016-07-31 09:27:46 +08:00
前几天刚给公司做了个 Docker 推广,截两个图吧:



Docker 的使用场景官方给出了几个:
1 、 CI/CD
2 、高效的开发测试运维
3 、大数据分析(应该是什么集群之类的应用吧)
4 、减少基础开销(一台机器上可跑上千个容器)
Bardon
2016-07-31 09:43:36 +08:00
@RoshanWu 感觉 Vagrant 使用 alpine ,并善用快照的话,恢复也是秒级的,体积也能做到 MB ,与 docker 相比,就是一个初始镜像问题,也就是 FROM xxx
另外至于性能, docker for mac && windows ,老实说,性能不如人意,可能我有些吹毛求疵了。
aprikyblue
2016-07-31 10:33:39 +08:00
@Bardon mac 我没试过。。 windows 的 docker daemon 是运行在 linux vm 里的,性能好才有鬼了。。。
br00k
2016-07-31 10:47:19 +08:00
@Bardon 感觉很方便啊,各种镜像。以前安装一个复杂点的软件,配置麻烦死了。编译,安装依赖,配置一堆才能跑起来,现在输入一个命令等一下就可用了。
21grams
2016-07-31 10:50:10 +08:00
没用过 docker ,看了二楼的图有点疑问,既然 docker 这么好,为啥没把虚拟机淘汰掉?
mrytsr
2016-07-31 10:56:48 +08:00
选查下 lxc
Bardon
2016-07-31 11:07:15 +08:00
@br00k 嗯,所以浑浑噩噩用到现在,感觉与 Vagrant 的区别就是一个生态,然后各种概念轰炸。
andysheng
2016-07-31 11:50:47 +08:00
@aprikyblue mac 的 docker 也是跑在 vm 里
majinjing3
2016-07-31 11:55:13 +08:00
@Bardon 不是概念哦, docker 已经可以 production ready 了, docker 是容器管理工具,而 vagrant 是虚拟机管理工具,生产环境中,不需要 vagrant ,因为云服务提供商都有自己的 api ,而且各大提供商基础环境千差万别,而 docker 现在可以运行在大多数发行版上,和具体的云环境隔离开,无论是本地测试,生产环境测试都完保证需要的一致性
tobyxdd
2016-07-31 12:12:23 +08:00
@21grams Docker 是 Container 说白了就是个高级版沙盘 另类 chroot 和 VM 的原理不同功能也比 VM 有限 比如 Linux 上永远没法跑 Docker 的 Windows 反之亦然
defunct9
2016-07-31 12:13:40 +08:00
vagrant 是完全虚拟的操作系统。 docker 是进程级别的,维护进程不方便,准确说应该连 shell 都不起的
tobyxdd
2016-07-31 12:13:49 +08:00
@21grams docker 依赖 host 的内核 依赖 host 的 system calls 根本不属于 virtualization
happypy1
2016-07-31 14:52:16 +08:00
vagrant 不本质上应该是虚拟机自动部署化技术吗?它不是一个独立的虚拟机技术方案,它只是提供了一个脚本技术来创建一个虚拟机。你看它还是需要 VB , vmware 来运行虚拟机的。
kaneg
2016-07-31 15:42:57 +08:00
这两个差异海了去了。前者解决的是 devops 的问题,后者解决的则是开发人员的问题
bingwenshi
2016-07-31 16:50:52 +08:00
vagrant 的底层是 virtual box , 全虚拟化
bingwenshi
2016-07-31 16:51:47 +08:00
docker 顶多算是个隔离的进程,跟 os 相关的都是 hook 到物理机上的
Syc
2016-07-31 16:58:14 +08:00
docker 个人理解为 os 型沙盒,不同于软件型沙盒的是 docker 能实现更多
oska874
2016-07-31 19:02:56 +08:00
两个有关系吗?一个虚拟机,一个容器。

@aprikyblue 新版的 docker 在 mac 和 win 上已经原生了不用 vbox 了。
nsgit
2016-07-31 19:53:45 +08:00
Docker 类容器技术应用很广了, Vagrant 只是测试的时候用的比较多吧?没见过生产使用的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296100

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX