我安装了docker并发出了'docker swarm init'命令。
我正在尝试使用以下命令启动堆栈:docker stack deploy -c docker-compose.yml mystack
可以找到docker-compose文件here,第一个泊坞文件here和第二个here
'docker ps'的输出是:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f582b3e8d33e tons/ip2country:latest "/bin/sh -c 'java -D…" 8 seconds ago Up 6 seconds 8080/tcp ip2flag_country-service.1.t5rvuqaw8tj7v20u0xo0dgy6x
bbf2c8304f1a tons/ip2flag:latest "/bin/sh -c 'java -D…" 10 seconds ago Up 8 seconds 8080/tcp ip2flag_app.1.z00gz8adj2yshpgimaw2o55d3
cbc7eaace4bf portainer/portainer "/portainer" 39 minutes ago Up 39 minutes 0.0.0.0:9000->9000/tcp portainer
'docker service ls'的输出是:
ID NAME MODE REPLICAS IMAGE PORTS
ex51pyh1oyyo ip2flag_app replicated 1/1 tons/ip2flag:latest *:8080->8080/tcp
yhbt97lmjqan ip2flag_country-service replicated 1/1 tons/ip2country:latest
由于我在localhost上运行它,我希望http://localhost:8080/能够返回某种数据。但它只是超时。如果我附加到容器并执行类似wget localhost:8080 / some / path之类的操作,它将按预期工作。所以服务正在运行并且在容器内监听端口8080.但是端口没有暴露在dockers网之外。我还可以补充说,使用'docker-compose up'启动也可以。但不是'docker stack deploy'。关于我做错了什么的任何线索?