我使用Ubuntu进行开发和部署,并且需要创建一个隔离的环境。
我正在考虑为此目的使用Vagrant或Docker。优缺点是什么,或者这些解决方案相比如何?
如果您的目的是隔离,那么我认为Docker是您想要的。
Vagrant是虚拟机经理。它允许您编写虚拟机配置和配置脚本。但是,它仍然是虚拟机,取决于VirtualBox(或其他),具有巨大的开销。它要求您拥有一个巨大的硬盘文件,需要很多内存,并且性能可能不是很好。
另一方面,Docker通过LXC使用内核cgroup和命名空间。这意味着您使用与主机相同的内核和相同的文件系统。您可以将Dockerfile与docker build命令配合使用,以处理容器的配置和配置。您在docs.docker.com上有一个有关如何制作Dockerfile的示例;这是非常直观的。
docker build
您可能要使用Vagrant的唯一原因是,如果需要在Ubuntu机器上进行BSD,Windows或其他非Linux开发。否则,选择Docker。