无法访问在本地主机 Docker Swarm 集群中运行的容器

无法访问在本地主机 Docker Swarm 集群中运行的容器

如果这很有趣:操作系统:WIN10(cygwin),代码用 编写Java。我正在使用 hyperv VM,如本指南中所述:

我希望使用(浏览器或 curl)到达在端口 80 上运行的service前面的。不知何故,这不起作用。还是我误解了服务端口转发?containermyvm1IP:80

*:8080->80/tcp


我有一个正在运行的由 2 个节点组成的 docker swarm 集群。 我可以 ping 两个正在运行的虚拟机

我已经降级了版本,因为较新版本号的问题. 有关引擎使用的信息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错误代码,因为没有映射/。我错了吗?

相关内容