Docker-machine swarm;如何在VM上打开端口

时间:2016-09-07 15:17:00

标签: docker docker-swarm

this之后尝试新的“群体模式”。我通过docker-machine create --driver virtual box <name>创建了3个VM。但是我如何在它们上打开端口?

1 个答案:

答案 0 :(得分:1)

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

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

使用

设置swarm
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

<yourtoken>命令的输出中找到docker swarm init

然后作者建议创建一个类似

的网络
docker network create --driver overlay webnet

并通过定义像

这样的服务来发布端口
docker service create --name webapp --replicas=2 --network webnet --publish 80:8000 <yourdockerimage>

在此示例中,yourdockerimage在端口8000内部运行服务,该服务映射到docker主机端口80.然后,您可以访问服务,例如由

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

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