如果这很有趣:操作系统:WIN10(cygwin),代码使用Java编写。
我按照this的例子进行了操作。
引用: 我期望能够通过myvm1IP:80(浏览器或curl)访问运行在端口80上的容器前的服务,但某种原因它无法正常工作。或者我对服务的端口映射理解有误吗? *:8080->80/tcp 我已经拥有一个由两个节点组成的运行中的docker swarm集群。 我可以ping通两个运行中的VMs 由于存在更高版本号的问题,我已经降级了版本。使用
当我尝试执行
我按照this的例子进行了操作。
引用: 我期望能够通过myvm1IP:80(浏览器或curl)访问运行在端口80上的容器前的服务,但某种原因它无法正常工作。或者我对服务的端口映射理解有误吗? *:8080->80/tcp 我已经拥有一个由两个节点组成的运行中的docker swarm集群。 我可以ping通两个运行中的VMs 由于存在更高版本号的问题,我已经降级了版本。使用
docker inspect vmName
获取有关引擎的信息。 "Engine": {
"EngineVersion": "18.06.1-ce",
"Labels": {
"provider": "hyperv"
},
我执行了以下的 docker-compose.yml
文件:
version: "3"
services:
web:
image: elps/articleservice:1.1.0.4
deploy:
replicas: 2
restart_policy:
condition: on-failure
ports:
- "8080:80"
environment:
- MYSQL_HOST=192.168.178.82
- MYSQL_DB=article
- MYSQL_USER=root
- MYSQL_PASSWORD=abcdefg
networks:
- webnet
networks:
webnet:
两个副本都成功启动,并能够连接到正在运行的本地数据库(假设我查看了日志并且一切都正常)。容器已经启动并运行。
docker ps -a 的输出结果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
979ed7ea88b7 elps/articleservice:1.1.0.4 "java -jar articlese…" 27 minutes ago Up 27 minutes 8080/tcp getstartedlab_web.1.j1j41so8pz6atxqnq9fqqquk7
7684c3667025 elps/articleservice:1.1.0.4 "java -jar articlese…" 27 minutes ago Up 27 minutes 8080/tcp getstartedlab_web.2.r4kadvztiwgpckkuannnhcsea
docker service ls 的输出
ID NAME MODE REPLICAS IMAGE PORTS
gvyi9moxtpvq getstartedlab_web replicated 2/2 elps/articleservice:1.1.0.4 *:8080->80/tcp
docker-machine ls 的输出结果
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm1 * hyperv Running tcp://192.168.178.88:2376 v18.06.1-ce
myvm2 - hyperv Running tcp://192.168.178.89:2376 v18.06.1-ce
当我尝试执行
curl myvmIP:80
时,我收到以下响应:我期望收到一个无法连接到192.168.178.88端口80:连接被拒绝
404
错误代码,因为没有/
的映射。我错了吗?