Docker Swarm如何启动一个容器

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

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

我个人认为第一个是正确的。 但是我不确定…

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