docker工人,无docker工人
在通过docker官方swarm解释之后,github问题和stackoverflow回答我仍然在为什么我有问题,我有一个损失。
手头上的问题:即使swarm处于活动状态, docker-compose up
不会在swarm中启动服务,并且有2个节点。
我使用1.12.1docker版本。
-
看看swarm教程,我能够使用
docker service create
来启动和扩展我的swarm,而没有任何问题。 -
运行
docker-compose up
与版本2docker-compose up
docker-compose.yml结果在群外启动的服务,我可以通过docker ps
看到它们,但不是docker service ls
我可以看到docker-machine作为解决这个问题的工具,但是之后又需要安装虚拟盒子。
所以我的问题是
-
我可以使用docker组合与docker群(不是docker引擎)没有docker机和没有实验性构build捆绑function?
-
如果
docker service create
可以在任何节点上启动一个服务是否表示群集的networkingconfiguration是正确的? -
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等额外设置。