Docker与Vagrant的比较

3
每个Docker镜像,据我所知,都基于一个基础镜像,例如Ubuntu。
如果我想要隔离任何进程,我应该部署ubuntu docker基础镜像(在这里与Vagrant有何区别?),并在其上安装必要的子镜像?
那么,如果Ubuntu在Vagrant和Docker上启动,实践中有什么区别呢? 如果在Vagrant中使用docker提供程序,在Vagrant和Docker之间有什么区别?
而且,在Docker中是否可能在某台PC上隔离进程,而不需要基础镜像,并且不共享给另一台PC?

2
一些信息在这里 https://dev59.com/gWQn5IYBdhLWcg3wroyL - Dty
2个回答

4
Vagrant是一种实用工具,可帮助您自动设置虚拟机。Docker是一种在Linux中使用容器化的实用工具。
虚拟机运行整个系统,并模拟硬件。容器将进程隔离在单个运行内核中,而不需要模拟硬件。
虚拟机和Docker镜像都可以是Ubuntu 14.04,但使用Docker镜像时,您不需要运行整个操作系统。
例如,如果我想要基于Ubuntu运行一个nginx容器,那么最终只会运行nginx进程。不需要upstart/systemd/init。虚拟机将运行一个init系统,管理自己的网络,并运行其他服务。使用以linux发行版为基础的容器镜像方法主要是为了方便。
完全可以使用非常小的镜像运行Docker容器。仅在镜像中包含静态编译的二进制文件就足以运行容器。

一个虚拟机和一个Docker镜像都可以是Ubuntu 14.04。那么,Docker可以通过硬件仿真运行Ubuntu吗?例如,Docker如何启动nginx容器?它会运行Ubuntu基础镜像,然后将nginx容器作为docker的Ubuntu子进程运行吗? - Alex Ushakov

0

Vagrant:Vagrant是一个帮助产生虚拟机的项目。它最初是VirtualBox的命令行,类似于VM的Gemfile。您可以选择基础映像开始,网络、IP、共享文件夹和将其全部放入文件中,以便任何人都可以重用它来生成相同配置的机器。 Vagrant具有不同的扩展、预配选项和VM提供程序。您可以在VirtualBox、VMware上运行,并且足够可扩展,可以在EC2上创建实例。

Docker:Docker 允许将应用程序及其所有依赖项打包成标准化的软件开发单元,因此它减少了开发人员、QA 和测试之间的摩擦。它动态地改变您的应用程序,每天都添加新的功能,扩展服务以快速解决问题区域。Docker 将自身置于令人兴奋的位置,作为 PaaS 的接口,无论是网络、发现还是服务发现,应用程序都不必关心底层基础架构。是的,Docker 在生产中仍然存在问题,但是希望我们会看到这些问题的解决方案,因为 Docker 团队和贡献者正在努力解决这些问题。由于 Docker Volume 驱动程序允许第三方容器数据管理解决方案为操作数据的容器(如数据库、键值存储和其他有状态应用程序)提供数据卷,因此可以使用更高级别的容量插件,如 rexray,提供高级存储功能。emccode/rexray 我们最终开始达成共识,不仅仅是关于镜像和运行时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接