我如何知道为什么我的Docker服务处于挂起状态?
我正在玩Docker Swarm
,并使用docker-compose.yml
和docker-compose.yml
docker deploy
。 所有的服务都被部署,除了一个,它处于挂起状态。 我已经添加了一个约束,该服务绑定到其中一个节点。 我的问题不是关于这个问题,而是关于如何解决问题。 Docker文档提到服务处于待处理状态的可能原因,但是这些都不适用(约束问题,资源泄漏)。
我可以在哪里看到docker群“思考过程”吗? 它在想什么?
编辑:应该已经更清楚,我正在使用新的,1.12引入,swarm选项。
我将解释如何在docker swarm模式下服务无法正常启动时进行debugging。
首先,通过docker service ps <service-name>
获取任务ID。
接下来,用docker inspect <task-id>
检查元数据是很有用的。 特别是在容器启动之前的错误信息在状态字段中,然后再确认它是否以预期的参数启动。
如果任务具有容器ID,则在启动容器后exception退出,因此使用docker logs <container-id>
检查容器的docker logs <container-id>
我希望这将是一些帮助。
docker run swarm
有一个可以告诉你更多的--debug
选项。
请参阅docker swarm issue 2341或docker issue 24982以查看用于debugging暂挂状态的选项。
例如:
(unknown): 192.168.99.106:2375(node2 ip) └ ID: └ Status: Pending └ Containers: 0 └ Reserved CPUs: 0 / 0 └ Reserved Memory: 0 B / 0 B └ Labels: └ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?....