如何在 swarm context 中使用 docker python SDK?
How to use docker python SDK in swarm context?
为了使用像这样的命令:
client.nodes
我们需要 运行 python 在一台机器上编写代码,该机器是 swarm 中的一个管理器。但是我应该如何启动 python 程序?
在 docker 机器上没有要安装 python 的东西,我认为尝试这样操作不是一个好主意。
如果您在容器中启动 python,则您不在 swarm 上下文中。
我找到的唯一方法是在 Windows 的 Docker 快速启动终端中启动 python 程序,并在 Swarm 中创建 'default' 机器管理器。
但现在我需要在 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
为了使用像这样的命令:
client.nodes
我们需要 运行 python 在一台机器上编写代码,该机器是 swarm 中的一个管理器。但是我应该如何启动 python 程序?
在 docker 机器上没有要安装 python 的东西,我认为尝试这样操作不是一个好主意。
如果您在容器中启动 python,则您不在 swarm 上下文中。
我找到的唯一方法是在 Windows 的 Docker 快速启动终端中启动 python 程序,并在 Swarm 中创建 'default' 机器管理器。
但现在我需要在 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