Docker主机和容器有什么区别?

42

我开始学习Docker,但是即使我在多个地方读过它,我仍然经常感到困惑。

Docker Host和Docker容器。

  • Docker引擎是处理容器的基本引擎。
  • Docker容器位于Docker引擎之上。它是由配方(带有shell脚本的文本文件)创建的。它从hub中拉取映像,并且您可以在其上安装所需软件。
  • 在典型的应用程序环境中,您将为系统的每个组件(应用程序服务器、数据库服务器、Web服务器等)创建单独的容器(每个容器一个)。
  • Docker Swarm是一组容器的集群。

Docker Host是什么?这是另一个词汇表示容器,还是另一层可以将多个容器放在一起的层次结构?

抱歉,这可能是一个基本问题。 我已经谷歌过了,但没用。

5个回答

32

Docker主机是基于传统操作系统的服务器,其中操作系统和进程在正常(非容器)模式下运行。因此,您通过实际启动和引导服务器(或VM)来启动的操作系统和进程即为Docker主机。通过Docker命令在容器内启动的进程是您的容器。

打个比方: Docker主机就像是一个游乐场,Docker容器就像是在里面玩耍的孩子们。


这个比喻并没有帮助我理解端口映射。我明白孩子们有端口,操场可以有端口联系操场外的事物,但为什么操场需要端口来访问孩子们的端口呢? - Mike B
@MikeB 操场上有11个孩子在彼得先生的课间休息时间里。一个家长来学校给鲍比传递了一条消息。彼得先生将消息交给了鲍比。家长等同于网络中的TCP消息。老师等同于主机。学生等同于容器。 - P.Brian.Mackey
有趣的是,在compose.yaml文件中,甚至存在更多模糊的术语。容器端口被称为目标(target),而主机端口被称为已发布(published)。也许这是因为主机可以进行负载均衡?尽管如此,我还是觉得很奇怪。https://docs.docker.com/compose/compose-file/compose-file-v3/#long-syntax-1 - P.Brian.Mackey

20

Docker Host 是安装了 Docker Engine 的机器。


16

这里有一张图片,我认为它比文字更容易理解。我在这里找到了它。

主机是管理容器和镜像的机器,在这台机器上你实际安装了Docker。

enter image description here


3

Docker主机是您安装Docker引擎的机器。Docker容器可以类比为在同一台Docker主机上运行的简单进程。


2

主机是底层操作系统,支持应用程序隔离(即通过“容器”进行进程和用户隔离)。Docker 提供了一个 API,定义了一种应用程序打包的方法以及容器工作的方法。

主机 = 容器实现 Docker = 应用程序打包和容器管理


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接