我有两个工作节点:worker1 和 worker2 以及一个集群管理器。我只在工作节点中运行所有服务。我需要从管理器 docker exec 运行以访问在工作节点中创建的一些容器,但我不断发现该服务无法识别。我知道我可以在任何工作节点中运行 docker exec 并且它工作正常,但我不想找到服务正在运行的节点,然后 ssh 到指定的节点以运行 docker exec 命令。有没有办法在 swarm 中这样做?
最佳答案
Swarm 模式目前无法在正在运行的任务上运行 exec。您需要找到容器并在主机上运行 exec。您可以将工作人员配置为拥有一个受 TLS 保护的端口来监听,这将为您提供远程访问(参见 docker's guide)。您可以通过检查 docker service ps $service_name
的输出来查找服务中每个任务的节点。
关于docker - 从群管理器运行 docker exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44638869/