了解不同的Docker组件

时间:2016-08-28 20:54:44

标签: linux docker docker-for-windows docker-desktop

我有非常简单的理论问题。在 Docker Desktop for Windows 和Mac OS正式启动之前,我们在VirtualBox中使用了Docker。在Virtual Box中,我们使用docker-machine命令管理VM,而如果我们使用Docker Desktop for Windows和Mac OS,我们通常不会使用docker-machine。现在保持两个版本的视图:

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

2 个答案:

答案 0 :(得分:1)

关于Docker守护程序,Docker引擎,Docker客户端,Docker主机以及Docker的工作原理,请参阅Understanding Docker docDocker Engine page。有明确的架构结构和解释。

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

答案 1 :(得分:1)

docker host是容器运行的地方。由于docker容器需要在linux下运行,如果你在mac或windows上,你只能在你的机器上运行它们,如果你运行的是linux vm。

  1. 在VirtualBox上,docker主机是boot2docker的一个实例,它是一个非常轻量级的linux。在docker4mac上,主机实际上是你的mac(每个容器实际上都在一个名为xhyve的“micro linux”下运行,但那是为了细节)

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

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

  4. 我不知道MobyLinux

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

  6. 所有好问题......