如何将Docker运行命令转换为Swarm命令?

时间:2016-11-02 19:50:41

标签: docker docker-swarm

我有一个像这样运行我的Docker容器的设置。

run-docker.sh

docker build -t wordpress-gcloud
container=$(docker run -d wordpress-gcloud)
ipOfContainer=$(docker inspect "$container" | jq -r '.[0].NetworkSettings.IPAddress')

但是现在我已经设置了一个Docker Swarm(1个经理+ 2个工作人员)。

我应该如何转换上面的bash脚本来运行swarm上的容器?

1 个答案:

答案 0 :(得分:0)

通常,您可以通过Swarm API访问Swarm群集,这与Docker API类似。要访问Swarm API,可以使用-H参数和docker命令。例如,如果您在本地计算机上运行了一个群集管理器,并且端口号为3376,那么您可以通过以下方式获取群集群集信息:

docker -H 127.0.0.1:3376 info

您还可以通过以下方式检查群集群集:

docker -H 127.0.0.1:3376 inspect <container ID>

有关与Swarm群集通信的更多详细信息,请访问:https://docs.docker.com/swarm/install-manual/#/step-6-communicate-with-the-swarm

但在你的情况下,我认为docker build命令可能是个问题。根据我的理解,Swarm将从您的集群中找到一个随机节点来执行此docker构建过程,因此如果Dockerfile不存在于已执行docker build的节点上,您将收到错误。我的想法是考虑在某个地方构建你的图像,然后将图像推到image registry,然后在你想要的任何地方拉动并运行图像。