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

简介: 本文讲的是【理解Docker】Docker与Vagrant的简单区别,【编者的话】本文翻译自Quora上的一个问题: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的简单区别
目录
相关文章
|
10月前
|
应用服务中间件 Linux nginx
直接部署nginx和在docker里面部署nginx性能上有区别吗
直接部署nginx和在docker里面部署nginx性能上有区别吗
376 0
|
11天前
|
存储 安全 Ubuntu
Docker 镜像与 Docker 容器的区别
【8月更文挑战第27天】
49 5
|
19天前
|
缓存 Docker 容器
在Docker中,docker add copy有什么区别?
在Docker中,docker add copy有什么区别?
|
19天前
|
JSON Shell 数据格式
在Docker中,docker run cmd entrypoint 有什么区别?
在Docker中,docker run cmd entrypoint 有什么区别?
|
19天前
|
Ubuntu 开发者 Docker
在Docker中,stage和step有什么区别?
在Docker中,stage和step有什么区别?
|
19天前
|
缓存 Docker 容器
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
|
1月前
|
Docker 容器
Docker export 和 save 区别
【8月更文挑战第3天】`docker export` 与 `docker save` 的关键区别在于处理对象和用途。`export` 将容器转为 `.tar` 文件,仅导出容器文件系统,不含元数据,适合快速备份或测试;`save` 则打包整个镜像及其元数据为 `.tar` 文件,用于镜像迁移或离线备份。前者通过 `import` 创建新镜像但无元数据,后者用 `load` 恢复完整镜像。
94 1
|
15天前
|
Kubernetes 网络协议 Docker
在K8S中,ip-cer-pod与docker原生端口映射有何区别?
在K8S中,ip-cer-pod与docker原生端口映射有何区别?
|
18天前
|
Linux KVM 虚拟化
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
|
23天前
|
关系型数据库 MySQL Docker
Docker - 数据卷挂载与目录挂载的区别
Docker中数据卷挂载与目录挂载的区别,包括它们的定义、使用场景和命令差异。
71 0
下一篇
DDNS