我有一个像这样运行我的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上的容器?
答案 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,然后在你想要的任何地方拉动并运行图像。