如何在 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