我有非常简单的理论问题。在 Docker Desktop for Windows 和Mac OS正式启动之前,我们在VirtualBox中使用了Docker。在Virtual Box中,我们使用docker-machine
命令管理VM,而如果我们使用Docker Desktop for Windows和Mac OS,我们通常不会使用docker-machine
。现在保持两个版本的视图:
任何帮助将不胜感激。
答案 0 :(得分:1)
关于Docker守护程序,Docker引擎,Docker客户端,Docker主机以及Docker的工作原理,请参阅Understanding Docker doc和Docker Engine page。有明确的架构结构和解释。
对于问题4,Docker应该在Linux中运行,因此Docker for Windows将创建一个Linux“MobyLinux”VM来运行Docker组件。
答案 1 :(得分:1)
docker host是容器运行的地方。由于docker容器需要在linux下运行,如果你在mac或windows上,你只能在你的机器上运行它们,如果你运行的是linux vm。
在VirtualBox上,docker主机是boot2docker的一个实例,它是一个非常轻量级的linux。在docker4mac上,主机实际上是你的mac(每个容器实际上都在一个名为xhyve的“micro linux”下运行,但那是为了细节)
Docker客户端只是运行Docker Client应用程序的任何终端,这是一个CLI应用程序,它与在主机内运行的Docker守护程序进行通信。
据我了解,即使在Docker 4 mac / windows中,Docker引擎和docker守护程序也是一样的。
我不知道MobyLinux
使用命名空间,cgroup和专用网络实现与主机(和其他容器)的容器隔离。请参阅https://docs.docker.com/engine/security/security/但我不相信默认情况下启用了像cgroup这样的安全性。
所有好问题......