为了使用如下命令:
client.nodes
我们需要在作为集群内管理器的机器上运行 python 代码。但是我应该如何启动 python 程序呢?
在 docker 机器上没有任何东西可以安装 python,我认为尝试这样做不是一个好主意。
如果你在容器中启动 python,那么你就不在 swarm 上下文中。
我发现的唯一方法是在 Windows 的 Docker Quickstart Terminal 中启动 python 程序,并在 Swarm 中设置“默认”机器管理器。
但现在我需要在 Ubuntu 上执行此操作,所以我无法使用此解决方案。
(如果有类似的 Docker Quickstart Terminal,我感兴趣)
最佳答案
我终于找到了使用来自管理器节点之一的docker守护进程的套接字的解决方案。
在 docker-compose 中,为 Python 创建一个服务并添加以下卷:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
不要忘记添加约束以使您的服务仅在管理器节点上运行。
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
关于python - 如何在 swarm 上下文中使用 docker python SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44113195/