我有两个工作程序节点:worker1和worker2和一个群集管理器。我仅在工作程序节点中运行所有服务。我需要从manager docker exec运行,以访问在工作节点中创建的一些容器,但我不断得到该服务未被识别的信息。我知道我可以在任何一个工作节点上运行docker exec,并且运行良好,但是我不想找到服务正在哪个节点上运行,然后SSH到指定的节点以运行docker exec命令。有没有办法做到这一点?
Swarm模式当前尚无法在正在运行的任务上运行exec。您需要找到容器并在主机上运行exec。您可以配置工作程序以使其监听其受TLS保护的端口,这将为您提供远程访问权限(请参阅docker’s guide)。您可以通过检查的输出来查找服务中每个任务的节点docker service ps $service_name。
docker service ps $service_name