1

为了使用如下命令:

client.nodes

我们需要在作为 swarm 内部管理器的机器上运行 python 代码。但是我应该如何启动 python 程序?

没有什么可以在 docker 机器上安装 python,我认为尝试这样进行不是一个好主意。

如果你在一个容器中启动 python,你就不是在一个 swarm 上下文中。

我发现的唯一方法是在 Windows 的 Docker 快速启动终端中启动 python 程序,并在 Swarm 中设置“默认”机器管理器。

但现在我需要在 Ubuntu 上做,所以我不能使用这个解决方案。

(如果有等效的 Docker 快速入门终端,我很感兴趣)

4

1 回答 1

1

我终于找到了使用来自管理器节点之一的 docker daemon 套接字的解决方案。

在您的 docker-compose 中,为您的 Python 创建一个服务并添加以下卷:

volumes:
    - /var/run/docker.sock:/var/run/docker.sock

不要忘记添加约束以使您的服务仅在管理器节点上运行。

deploy:
  mode: replicated
  replicas: 1
  placement:
    constraints:
      - node.role == manager
于 2017-05-29T10:01:08.657 回答