为什么在命令的swarm输出中不会“docker运行”?

我已经成功安装了一个由一个主节点和两个节点组成的Docker Swarm集群。

一切都按预期工作,只有一件事情偏离了文档。 根据文档 (查找“在Swarm上运行一个容器” ),当我在Swarm上运行某些东西时,我应该看到命令的输出,但这不是我所遇到的:

$ docker run hello-world # <<< no output $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 663f36f72ee1 hello-world:latest "/hello" 4 seconds ago Exited (0) 3 seconds ago node-1/serene_pare ... $ docker logs 663f36f72ee1 # <<< however everything looks good Hello from Docker. This message shows that your installation appears to be working correctly. ... 

我究竟做错了什么?

更新:使用run -i解决了这个问题。 不过,我很好奇,为什么-i对于Swarm来说只是必要的,为什么文档不这样说呢。

文档是错误的, 这个问题修复了文档。

之所以需要-i – 交互标志,是因为-i标志允许我们通过抓取容器中的标准(STDIN)来进行交互式连接,因为容器在另一个主机上。