Docker Swarm如何启动一个容器

How does Docker Swarm start a container

对于Docker Swarm,Swarm 管理器在主节点上运行,而 swarm 代理程序在从节点上运行。我对启动容器的步骤很感兴趣。有两个选项:

  1. Swarm 管理器直接通过 Docker 远程 API.
  2. 启动容器
  3. Swarm 管理器要求 Swarm 代理启动容器,然后 Swarm 代理要求本地 Docker 守护进程启动容器。

个人认为第一个是对的。但我不确定...

Swarm 代理无法访问 Docker 守护进程,它们只能通过 etcd、consul 或 zookeeper 与 master 进行通信。所以第一个是正确的。他们代理向发现服务注册主机,然后管理器可以通过侦听 TCP 端口的守护程序访问它。