【理解Docker】Docker与Vagrant的简单区别

本文讲的是【理解Docker】Docker与Vagrant的简单区别 【编者的话】本文翻译自Quora上的一个问题:Docker和Vagrant的区别,以及我们何时使用他们。

Vagrant Docker 是两只不同的野兽。

Docker 是一个由shell层和management层两部分组成的,用来构建并运行基于lxc的虚拟Linux容器。

Docker的伟大在于;它是轻量级的(因为它依赖于共享内核的Linux容器),[以及与它的分布无关]。虽然所有实例之间的内核共享(但与主机以及互相之间都是隔离的),不同实例的用户空间可以基于不同的Linux发行版本。

Vagrant 则是一个奇妙的工具,它使用puppet和/或chef管理,用来自动调配多个虚拟机,并且每个都有他们自己的配置。对于它的虚拟化来说,它可以使用不同的供应商。原来默认的提供商是VirtualBox,但它现在支持更多了,包括VMware fusion,甚至amazon-ec2。

有趣的是,Vagrant现在也具有一个Docker提供商,因此您可以用vagrant来管理Docker的构建和部署。

Docker,并不限制它的灵活性 - “一切都是镜像”,你可以创建变体镜像和全栈镜像,其中每一个添加功能到前一个。管理这些会成为一个挑战。

Vagrant也有类似的挑战,因为虚拟机可能会过时,有时虚拟机可能很难找到以及更新。有一些工具比如packer和以前的veewee可以用来帮助你构建所谓的'基础'虚拟机。

我相信这些工具可以很好地在一起工作,我觉得这样的组合会在你计划的筹码中或者在你要做整个部件更换测试中,甚至是基础操作系统中大放异彩。

假设你有一个基于Centos的应用程序,并且你要切换到Ubuntu或是其他方式。假设你想完全地升级你的操作系统。

我总是说在开发测试与分级中,对于当前生产环境(包括配置)以及在任何潜在的替代生产环境中你必须要测试你的产品。您是否正在计划一个安全更新?你想更新或是切换到Java吗?

这是Vagrant和Docker出彩的地方。我希望Docker帮助您加快对多个操作环境的测试。

Docker是否一个部署应用程序到生产生产环境中的有用工具呢?这是它常见的使用情况 - 那么它可能是。然而,配置文件的本质变化,尤其是那些必须通过网络进行协调的地方,可以更好地用一个知道在网络中的其他组件的工具。

原文链接:What is the difference between Docker and Vagrant? When should you use each one?(翻译:田浩浩)

原文发布时间为: 2015-03-25
本文作者:田浩浩
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:【理解Docker】Docker与Vagrant的简单区别
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/224731

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。