2016-09-07 77 views

回答

0

它可能与在节点上执行的docker run -p <public-port>:<internal-port> <image>一起使用。然而,既然你想运行一个群,我想最好按照solve the routing mess here的好指南。如果您按照作者的建议,则需要首先通过docker-machine命令创建swarm(即docker主机群集),例如,

docker-machine create --driver virtualbox swarm-1 
docker-machine create --driver virtualbox swarm-2 

eval $(docker-machine env swarm-1) 
docker swarm init --advertise-addr $(docker-machine ip swarm-1) 

设置群加入其他机器(如果有的话)与

eval $(docker-machine env swarm-2) 
docker swarm join \ 
--token <yourtoken> 192.168.99.106:2377 

其中在docker swarm init命令的输出被发现。

那么笔者建议通过定义像

docker service create --name webapp --replicas=2 --network webnet --publish 80:8000 <yourdockerimage> 

在这个例子中一个服务创造的东西的网络状

docker network create --driver overlay webnet 

和发布端口,yourdockerimage在端口内部运行的服务8000,它映射到码头主机端口80.然后,您可以访问该服务,例如通过

curl http://<IP-address of any Docker swarm node>:80 

请注意,您可以访问任何Docker群集节点的IP地址。即使您选择了节点的IP地址,但没有运行此服务的容器,Docker swarm也会发挥作用,并将请求路由到此服务的容器。