在this之后尝试新的“群体模式”。我通过docker-machine create --driver virtual box <name>
创建了3个VM。但是我如何在它们上打开端口?
答案 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
使用
设置swarmeval $(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也会发挥作用并将请求路由到此服务的容器。