docker - Docker 和 OpenVZ 的区别

标签 docker virtual-machine virtualization boot2docker openvz

我是虚拟化世界的新手。有人可以向我解释一下 OpenVZ 和 Docker 之间的区别吗?

什么对 future 有好处?

利弊?

最佳答案

两者对容器的看法截然不同。

简而言之 OpenVZ 将容器视为 VPS,而 docker 将容器视为应用程序/服务。

这意味着什么? 对于 OpenVZ,您可以期待在创建容器时,这有点像创建虚拟服务器。 OpenVZ 的界面专注于设置您手动装饰的 VPS 容器。因此,它们为空的 linux 机器提供了模板,您可以启动和关闭这些机器,然后您可以通过 SSH 连接到这些机器,以便您自行设置所需的任何东西,例如 LAMP 堆栈。

当您想要设置 LAMP 堆栈时,您可以像设置新服务器时一样执行此操作。你得到一个空的 linux 机器,它有一个虚拟以太网适配器,它有自己的可公开访问的 WAN IP,上面有 Ubuntu,使用 SSH 访问它,然后使用普通的包管理器(yum 或 apt)在其中安装所有必需的服务并执行自己在配置文件中进行设置。

对于 Docker, 您可以预期,当您创建容器时,容器是一个单独的应用程序,它只做一件事。因此,它可能需要一些其他容器来帮助它。 (例如提供数据库的容器) Docker 让定义容器内的内容变得非常容易,而无需实际启动一个容器,并不断创建该容器的新的完全相等的实例。他们使用称为 Dockerfile 的非常轻量级的模板来定义 docker 容器(镜像)的内容。

已经有大量的 dockerfiles,你可以在 Docker 中心找到,自己看看(就像在糖果店里有免费糖果!:D):docker hub .可以使用 docker CLI 工具通过 pull 命令拉取这些 dockerfile 生成的图像。 在 docker 中,还可以轻松访问端口转发、虚拟目录(以便您可以轻松访问主机上的文件)以及任何可执行文件都可以使用的类似内容。

如果您想在 docker 中使用 LAMP 堆栈,您只需执行“docker run -d -p 80:80 tutum/lamp”

这会拉取图像 tutum/lamp,并使用从容器转发到主机的端口 80 的端口 80 运行守护进程 (-d),将内部 Web 服务暴露给外部。如您所见,与 OpenVZ 机器相比,它没有自己的 IP 地址。它就像在您的根计算机上运行的 apache 服务器一样。 与本地安装相比,它的优势在于 docker 使安装更容易且可无限复制。此外,它不会让您的主机因大量文件而杂乱无章,并为您的应用程序提供安全边界。

大多数 docker 镜像中都有很多独特的功能。对于 tutum/灯图像,take a look here.

关于docker - Docker 和 OpenVZ 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304951/

相关文章:

virtualbox - Gentoo VirtualBox guest 在没有硬件虚拟化的情况下无法启动

linux - 如何在 Docker 中挂载 Hugepages

python - 通过 AWS PrivateLink 从不同的 AWS 账户访问 AWS ElastiCache(Redis CLUSTER 模式)

ubuntu - 无法调整 VirtualBox 显示的大小

azure - Windows Azure 虚拟机反向 DNS PTR 解决方案?

virtualization - 程序如何检测到它正在 Citrix 上运行?

docker - Kubernetes不使用dockerfile时区

docker - 从外行的角度理解 docker

mysql - 如何让mysql和php协同工作而不显示数据库密码

virtual-machine - 如何修复 VMware fusion 导入现有机器 (cloudera) 变灰的问题?