1

我有非常简单的理论问题。在Docker Desktop for Windows和 Mac OS 正式推出之前,我们在 VirtualBox 中使用了 Docker 。在 Virtual Box 中,我们得到一个虚拟机并使用命令对其进行管理,而如果我们使用 Docker Desktop for Windows 和 Mac OS docker-machine,我们通常不会使用它。docker-machine现在保留两个版本的视图:

  1. 什么是 Docker 主机以及它在两个版本中的作用?
  2. 如果我们使用 Docker for Windows,Docker 客户端现在被称为 Windows 上的任何终端?(我们现在不需要将我们的终端配置为 Docker 客户端来管理我们的容器吗?)
  3. Docker Engine 和 Docker Daemon 在两个版本中是相同的还是不同的东西?
  4. MobyLinux VM 在 Windows 的 Hyper-V 中的作用是什么?
  5. Docker 如何将我们的应用程序与主机操作系统隔离开来?

任何帮助将不胜感激。

4

2 回答 2

1

docker 主机是您的容器运行的地方。由于 docker 容器需要在 linux 下运行,因此如果您使用的是 mac 或 windows,则只能在运行 linux vm 的情况下在您的机器上本地运行它们。

  1. 在 VirtualBox 上,docker 主机是 boot2docker 的一个实例,它是一个非常轻量级的 linux。在 docker4mac 上,主机实际上就是你的 mac(每个容器实际上都在一个名为 xhyve 的“微型 linux”下运行,但仅此而已)

  2. Docker 客户端只是运行 Docker 客户端应用程序的任何终端,它是一个 CLI 应用程序,与在主机内运行的 Docker 守护程序通信。

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

  4. 我不知道 MobyLinux

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

所有好问题...

于 2016-08-29T11:55:59.953 回答
1

关于 Docker 守护进程、Docker 引擎、Docker 客户端、Docker 主机以及 Docker 的工作原理,请参阅了解 Docker 文档Docker 引擎页面。有明确的架构结构和解释。

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

于 2016-08-28T21:59:42.970 回答