2

我正在使用带有 Google Compute Engine(GCE)的 docker-machine 来运行
docker swarm 集群。我在集群中成功创建了一个包含 2 个节点
swnd-01swnd-02)的 swarm。我
在 swarm-manager 环境中创建了一个这样的守护进程容器:
docker run -d ubuntu /bin/bash

docker ps显示在swnd-01上运行的容器。当我尝试
使用容器对容器执行命令时,docker exec我收到
容器未运行的错误,而docker ps其他情况则显示。
我通过 docker-machinessh进入swnd-01以得知容器
一创建就退出了。我在swnd-01docker run中尝试了命令,但它仍然退出。我不明白这种行为。

感谢您收到任何建议。

4

1 回答 1

1

它退出的原因是/bin/bash命令完成并且 Docker 容器仅在其主进程中运行(如果您使用标志运行这样的容器,则-it该进程将在连接终端时继续运行)。

至于为什么 swarm manager 认为容器仍在运行,我不确定。我猜在 Swarm 更新所有内容的状态时会有短暂的延迟。

于 2015-07-11T07:36:39.570 回答