我正在尝试使用docker swarm设置非常简单的服务,而暴露端口存在问题。
我有两台机器,让它们分别命名为xxx和yyy。当我简单
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
它们都可以正常工作,我可以去xxx:9200拥有Elasticsearch实例
我尝试对群组模式执行相同操作,因此,在我做的xxx机器上:
docker swarm init --advertise-addr [external IP of xxx machine]
我获得了正确的令牌,并且成功地将yyy机器加入了集群。 然后,我使用
创建了新的覆盖网络docker network create -d overlay dockerdemo
并使用
在此集群中创建了服务
docker service create --name swarmelasticsearch --network dockerdemo --replicas 2 -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
服务创建成功,两台机器都运行了带有Elasticsearch的容器,但是我无法从外部访问它们。当我转到xxx:9200或yyy:9200或XXX-9200端口时,什么也没发生。我无法到达我的网站。为什么?我还需要做更多的事情吗?我的两台机器都在具有Ubuntu +最新docker的Azure VM上。