我是Docker的新手。希望你可以提供一些简单的问题。
我有一台Windows 10机器安装了“docker for windows”。在其HyperV管理器中,我可以看到一个名为“MobyLinuxVM”的虚拟机。
所以我的问题是:
1,当人们谈论“Docker Host”和“Docker Engine”时,根据我的情况他们是什么?
- 我认为“Docker Host”应该是我的Windows PC,而“Docker Engine”就是Hyper-V中的虚拟机。
2,如果我使用ipconfig查看我的电脑,我会发现我有至少2个网络和IP地址:
(a) Lan Adapter -- show my IP is 192.168.xxx.yyy
(b) DockerNAT -- show my IP is 10.0.75.1
然后当我尝试使用dock-compose.yml创建容器时,我发现我只能使用:
environment:
- MAGENTO_HOST=10.0.75.2
- MARIADB_HOST=10.0.75.2
创建容器并可以直接访问(例如通过浏览器访问Magento网站)。所以问题是:
如果我的机器在Docker网络中是10.0.75.1,那么什么是10.0.75.2?为什么我不能使用例如10.0.75.3吗
3,我的yml脚本实际上包含多个容器创建 - 例如2个Magento容器+ 2个MariaDB容器+等当我指定他们的码头'主机'时,为什么它不是我的机器? (如果我在第一个问题中将我的机器称为'docker host'并将hyper-v虚拟映像称为'docker engine'。)
4,同样根据我的第3个问题,我目前在1个主机内部署所有容器。是否值得使用 Docker Swarm ,人们可以使用它来集群多个Docker主机?如果是这样,这是否意味着我需要使用Hyper-V来创建另一个“MobyLinuxVM”?
非常感谢!
答案 0 :(得分:1)
Docker Engine是管理Docker容器的一组进程。 dockerd
通常是该流程树的负责人。
Docker Host是运行Docker引擎的操作系统,即MobyLinuxVM
您的VM主机是您的Windows框。
10.0.75.2很可能是分配给MobyLinuxVM的地址。我没有运行Docker for Windows所以不能完全确认,但搜索网络似乎支持这一点。
您需要运行多个VM来设置swarm。 Docker machine是设置swarm实例时使用的工具。它允许您管理多个Docker实例并附带HyperV驱动程序。