docker工人,无docker工人

在通过docker官方swarm解释之后,github问题和stackoverflow回答我仍然在为什么我有问题,我有一个损失。

手头上的问题:即使swarm处于活动状态, docker-compose up不会在swarm中启动服务,并且有2个节点。

我使用1.12.1docker版本。

  1. 看看swarm教程,我能够使用docker service create来启动和扩展我的swarm,而没有任何问题。

  2. 运行docker-compose up与版本2 docker-compose up docker-compose.yml结果在群外启动的服务,我可以通过docker ps看到它们,但不是docker service ls

我可以看到docker-machine作为解决这个问题的工具,但是之后又需要安装虚拟盒子。

所以我的问题是

  1. 我可以使用docker组合与docker群(不是docker引擎)没有docker机和没有实验性构build捆绑function?

  2. 如果docker service create可以在任何节点上启动一个服务是否表示群集的networkingconfiguration是正确的?

  3. docker机与实验性构buildfunction的优点/缺点是什么?

1)你不能在新的Docker“Swarm模式”上使用docker-compose启动服务。 有一个function可以将docker-compose文件转换为新的群模式所能理解的新的dab格式,但在这一点上这是不完整的和实验性的。 您现在基本上需要使用bash脚本启动服务。

2)群(swarm模式)中的节点使用它们自己的覆盖networking进行交互。 当你做docker network ls时,这是一个ingress 。 您需要设置自己的覆盖networking来运行服务,例如:

 docker network create -d overlay mynet docker service create --name serv1 --network mynet nginx 

3)我不确定你的意思是“实验构build”,docker-machine只是创build主机(节点)的一种方式,它有助于在每个主机上设置docker守护进程,证书并允许一些基本的维护(更新证书,停止/启动主机,如果你是创build主机的人),它不创build服务,卷,networking或pipe理它们,这是docker api的工作。

1)没有。Docker Compose还没有和新的Swarm模式集成。 GitHub中的问题3656正在跟踪这个问题。 如果您现在使用Docker Compose在群集上启动容器,则使用docker run启动容器,这就是为什么您可以在一个节点上看到它们的原因。

2)是的。 实际上,您可以使用pipe理器上的docker node ls来确认所有节点已启动并处于活动状态,并且docker node inspect将检查特定的节点,您不需要创build服务来validationswarm。

3)Docker Machine也落后于1.12版本,所以如果你用Docker Machine启动一个群集,它将是“旧”types的群集。 旧的Docker Swarm产品需要Swarm模式免费提供的键值存储,TLS等额外设置。