代码之家  ›  专栏  ›  技术社区  ›  Pasha

为什么我不能在Docker中访问我的端点?

  •  0
  • Pasha  · 技术社区  · 6 年前

    我正在运行我的Docker容器,并期望达到它的端点。

    在这个问题中,我提供了dockerfile和gradle.build。 How to improve gradle.build file?

    Docker映像构建成功,当我运行它时,我看到了Spring boot是如何启动的,包括“Spring boot logo”和 Tomcat started on port(s): 9090 (http) with context path ''

    我用 pavelpolubentcev$ docker run -i -t -e SERVER_PORT=9090 messenger-auth-auth

    然而,当我尝试时,我无法访问我的端点。 http://localhost:9090 那么“不” Could not get any response “。

    当我奔跑 docker ps -a 我可以看到我的图像在运行:

    9d31b3e2aa63 messenger-auth-auth "java -jar /app/mess…" 6 minutes ago Up 6 minutes 8080/tcp practical_nightingale
    

    但出于某种原因我也看到了 8080/tcp

    我应该怎么做才能正确地运行它并最终从我的端点得到答案?

    enter image description here

    enter image description here

    谢谢你的帮助,我很感激,我真的需要解决这个问题。

    2 回复  |  直到 6 年前
        1
  •  2
  •   bazaglia    6 年前

    这个 8080/tcp 当在中定义了列出正在运行的容器时,在输出中可以看到 EXPOSE 在图像Dockerfile上。但这条指令实际上并没有发布端口。

    您必须将主机(机器)端口映射到容器端口,以便将TCP/UDP从主机转发到容器。

    也就是说,在您的情况下,运行容器的命令是:

    docker run -e SERVER_PORT=9090 -p 9090:9090 messenger-auth-auth

        2
  •  1
  •   davidxxx    6 年前

    将容器端口映射到外部端口: docker run -p 9090:9090 ...
    第一个端口是外部端口(您现在希望从主机访问该端口),第二个端口是内部端口(容器上的端口)。 您可以指定相同的外部端口,也可以不指定。