Docker vs Vagrant

时间:2015-05-22 16:14:19

标签: docker vagrant

据我所知,每个Docker镜像都基于基本图像 - 例如,Ubuntu。

如果我想隔离任何进程,我应该部署ubuntu docker基础映像(这里与Vagrant的区别在哪里?),并在ubuntu映像上安装后创建一个必要的子图像?

那么,如果在Vagrant和Docker上推出Ubuntu,那么练习差异在哪里? 如果在Vagrant中使用docker provider - 这里Vagrant和Docker之间有区别吗?

而且,在Docker中是否可以在没有基本映像的情况下隔离某些PC上的进程而不将其共享到另一台PC上?

2 个答案:

答案 0 :(得分:3)

Vagrant是一个帮助您自动设置VM的实用程序。 Docker是一个实用程序,可以帮助您在linux中使用容器化。

虚拟机运行整个系统,并模拟硬件。容器会在单个正在运行的内核中关闭进程,而无需模拟硬件。

VM和Docker镜像都可能是Ubuntu 14.04,但是使用Docker镜像你不需要运行整个操作系统。

例如,如果我想运行基于ubuntu的nginx容器,我最终只会运行nginx进程。不需要upstart / systemd / init。 VM可以运行init系统,管理自己的网络,也可以运行其他服务。使用Linux发行版基础的容器映像方法主要是为了方便。

完全可以使用非常小的图像运行Docker容器。只需在图像中使用静态编译的二进制文件即可运行容器。

答案 1 :(得分:0)

Vagrant :Vagrant是一个帮助虚拟机产生的项目。它起初是VirtualBox的命令行,类似于VM的Gemfile。您可以选择要开始的基本映像,网络,IP,共享文件夹,并将其全部放在任何人都可以重复使用以生成相同配置的计算机的文件中。 Vagrant有不同的扩展,配置选项和VM提供商。您可以运行VirtualBox,VMware,它可以扩展到足以在EC2上创建实例。

Docker :Docker允许将具有所有依赖关系的应用程序打包到标准化的软件开发单元中。因此,它减少了开发人员,QA和测试之间的摩擦。它动态地更改您的应用程序,每天添加新功能,扩展服务以快速更改问题区域。 Docker将自己置于一个令人兴奋的地方,因为PaaS的界面是网络,发现和服务发现,应用程序无需关心底层基础架构。是的,他们仍然是生产中的码头工人的问题,但是,希望我们能够看到解决这些问题的解决方案,因为docker团队和贡献者在这些问题上努力工作。由于Docker Volume驱动程序允许第三方容器数据管理解决方案为运行数据的容器(如数据库,键值存储和其他有状态应用程序)提供数据卷。 最新版本具有更高的灵活性,完整的编排内置,高级网络,秘密管理等。您可以看到一个,rexray,作为卷插件并提供高级存储功能。 emccode/rexray我们终于开始就图像和运行时间达成一致。