Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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服务和Docker运行的端口映射之间的差异_Docker - Fatal编程技术网

Docker服务和Docker运行的端口映射之间的差异

Docker服务和Docker运行的端口映射之间的差异,docker,Docker,通常,当我们创建docker容器(例如nginx)并将其公开给外部时,我们使用端口映射 docker run -p 8091:80 --name container1 --net my-overlay-a nginx docker run -p 8092:80 --name container1 --net my-overlay-a nginx ( if in this line if I specified 8091:80 then it create problem as on host m

通常,当我们创建docker容器(例如nginx)并将其公开给外部时,我们使用端口映射

docker run -p 8091:80 --name container1 --net my-overlay-a nginx
docker run -p 8092:80 --name container1 --net my-overlay-a nginx ( if in this line if I specified 8091:80 then it create problem as on host machine 8091 already used to map 80 port of container1).
现在,如果我使用docker服务(我之前做过docker swarm init),就不用运行docker了

这也将创建两个容器,但都由相同的端口8080访问


这怎么可能

docker swarm使用路由网格技术、入口网络。当您在创建服务时定义端口时,服务将在每个节点中公开相同的端口,即使创建了多个容器。swarm内置负载均衡器,它将在所有集装箱上路由流量

docker swarm使用路由网格技术,入口网络。当您在创建服务时定义端口时,服务将在每个节点中公开相同的端口,即使创建了多个容器。swarm内置了负载均衡器,它将通过所有容器路由流量

检查此问题的已接受答案检查此问题的已接受答案虽然此答案未提供完整的详细信息,但提供了检查信息位置的详细信息。实际上,你的回答和@AnouarZ的建议帮助我搜索特定的主题。后来我了解了我自己。虽然这个答案没有提供完整的细节,但它提供了详细的信息检查。实际上,你的回答和@AnouarZ的建议帮助我搜索特定的主题。后来我了解了自己。
docker service create --name redis --replicas=2 --publish 8080:80 nginx