Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Docker run命令转换为Swarm命令?_Docker_Docker Swarm - Fatal编程技术网

如何将Docker run命令转换为Swarm命令?

如何将Docker run命令转换为Swarm命令?,docker,docker-swarm,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脚本以

我有一个像这样运行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上运行容器?

通常,您可以通过swarm API访问swarm集群,这与Docker API类似。要访问Swarm API,可以将
-H
参数与docker命令一起使用。例如,如果您的本地计算机上运行swarm manager,端口号为3376,则您可以通过以下方式获取swarm群集信息:

docker -H 127.0.0.1:3376 info
您还可以通过以下方式检查swarm群集容器:

docker -H 127.0.0.1:3376 inspect <container ID>
docker-H 127.0.0.1:3376检查
有关与Swarm cluster通信的更多详细信息,请参见:

但在您的情况下,我认为,
docker build
命令可能是一个问题。据我所知,Swarm将从集群中找到一个随机节点来执行此docker构建过程,因此,如果docker构建已执行的节点上不存在docker文件,则会出现错误。我的想法是考虑在某个地方建立你的图像,然后把图像推到A,然后在你想要的任何地方拉和运行图像。