【理解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的简单区别
目录
相关文章
|
5月前
|
应用服务中间件 Linux nginx
直接部署nginx和在docker里面部署nginx性能上有区别吗
直接部署nginx和在docker里面部署nginx性能上有区别吗
182 0
|
6月前
|
存储 持续交付 虚拟化
Docker 基础知识解析:容器与虚拟化的区别与优势
Docker 基础知识解析:容器与虚拟化的区别与优势
315 0
|
4月前
|
Docker 容器
Dockerfile 与 Docker Compose区别
用途: Dockerfile 用于定义单个容器的构建过程。它包含了一系列指令,每个指令都代表容器构建过程中的一个步骤。这些步骤包括从基础镜像中构建、安装依赖、拷贝文件、设置环境变量等操作。 语法: Dockerfile 是一个文本文件,其中包含一系列 Docker 指令。每个指令都会生成一个新的镜像层。常见的指令包括 FROM(指定基础镜像)、RUN(执行命令)、COPY(拷贝文件)、EXPOSE(暴露端口)、CMD(设置容器启动时执行的命令)等。 灵活性: Dockerfile 提供了灵活的方式来定义容器构建过程,允许用户精确地控制容器的组件和配置。 使用场景: Dockerfile 适用于
66 1
|
6月前
|
Cloud Native Linux 虚拟化
【云原生】Docker跨主机网络Overlay与Macvlan的区别
【云原生】Docker跨主机网络Overlay与Macvlan的区别
96 0
|
8月前
|
Kubernetes 负载均衡 Cloud Native
Docker和K8s区别,使用场景,具体怎么使用以及详细命令
@[TOC](目录) Docker 和 Kubernetes(简称 K8s) 都是容器技术领域中非常重要的工具,但它们在构建、部署和管理容器化应用程序方面发挥着不同的作用。本文将详细介绍 Docker 和 Kubernetes 的区别、使用场景以及具体的命令使用方法。 # 一、Docker 和 Kubernetes 的区别 Docker 是一种轻量级容器技术,可用于打包、交付和运行应用程序。Docker 将应用程序和所有依赖项 (库、框架等) 打包到一个称为 Docker 镜像的容器中,然后将该镜像部署到主机或云平台上。Docker 的主要优势在于它可以在不同的环境中提供一致的应用程序运行环境
847 0
|
8月前
|
Docker 容器
Docker compose v1 与 v2版本区别
Docker Compose是用于定义和管理多容器Docker应用程序的工具。下面是Docker Compose版本1和版本2之间的一些区别:
631 0
|
8月前
|
Ubuntu Docker Windows
Docker和虚拟机的区别
Docker和虚拟机的区别
100 0
|
8月前
|
Kubernetes Java Maven
阿里云云效流水线中的Java构建Docker镜像并推送到镜像仓库和Kubernetes镜像升级这两个节点的区别
阿里云云效流水线中的Java构建Docker镜像并推送到镜像仓库和Kubernetes镜像升级这两个节点的区别
424 1
|
9月前
|
Linux 开发工具 Docker
【docker】CMD和ENTRYPOINT的区别
【docker】CMD和ENTRYPOINT的区别
|
9月前
|
Linux Docker 容器
Docker从入门到精通——CMD与ENTRYPOINT区别
Docker从入门到精通——CMD与ENTRYPOINT区别
154 0