了解不同的 Docker 组件

Understanding different Docker components

我有很简单的理论问题。在 Docker Desktop for Windows 和 Mac OS 正式发布之前,我们在 VirtualBox 中使用了 Docker。在 Virtual Box 中,我们得到一个 VM 并使用 docker-machine 命令管理它,而如果我们使用 Docker 桌面用于 Windows 和 [=46,我们通常不使用 docker-machine =] OS。现在保留两个版本的视图:

  1. 什么是 Docker 主机及其在两个版本中的作用?
  2. Docker 如果我们对 Windows 使用 Docker,客户端现在被称为 Windows 上的任何终端? (我们现在不需要将我们的终端配置为 Docker 客户端来管理我们的容器吗?)
  3. Docker引擎和Docker守护进程在两个版本中是相同的还是不同的?
  4. MobyLinux VM 在 Hyper-V 中的作用是什么Windows?
  5. 如何 Docker 将我们的应用程序与主机隔离 OS?

任何帮助将不胜感激。

关于Docker守护进程,Docker引擎,Docker客户端,Docker主机,以及Docker的工作原理,请参考Understanding Docker doc and Docker Engine page.有清晰的架构结构和解释。

对于问题 4,Docker 应该在 Linux 中 运行,因此 Docker 对于 Windows 将创建一个 Linux "MobyLinux" VM 到 运行 Docker 个组件。

docker 主机是您的容器 运行。由于 docker 容器需要 运行 在 linux 下,如果您在 mac 或 windows 上,您只能在本地 运行 machine if you have a linux vm 运行ning.

  1. 在 VirtualBox 上,docker 主机是 boot2docker 的一个实例,这是一个非常轻量级的 linux。在 docker4mac 上,主机实际上是您的 mac(每个容器实际上 运行 在一个名为 xhyve 的 "micro linux" 下,但这是为了详细信息)

  2. docker 客户端只是 运行 是 Docker 客户端应用程序的任何终端,它是与 [=44= 通信的 CLI 应用程序] 守护进程 运行在主机内。

  3. 据我了解,即使在 Docker 4 mac/windows.[=11 中,Docker 引擎和 docker 守护程序也是相同的=]

  4. 我不知道 MobyLinux

  5. 容器与主机(和其他容器)的隔离是使用命名空间、cgroup 和专用网络实现的。请参阅 https://docs.docker.com/engine/security/security/ 但是我不认为默认情况下会启用像 cgroup 这样的安全性。

所有好问题...