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

时间:2019-01-05 21:39:33

标签: java spring-boot docker

我正在运行我的Docker容器,希望能击中它的端点。

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

Docker镜像已成功构建,当我运行它时,我看到了Spring Boot的启动方式,包括“ Spring Boot徽标”和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 个答案:

答案 0 :(得分:2)

在映像Dockerfile上的radio1中定义了列出正在运行的容器时在输出中看到的8080/tcp。但是该指令实际上并没有发布端口。

您必须将主机(计算机)端口映射到容器端口,才能将TCP / UDP从主机转发到容器。

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

EXPOSE

答案 1 :(得分:1)

将容器端口映射到外部端口:from skimage import measure def make_mesh(image, threshold=+30, step_size=1): print "Transposing surface" p = image.transpose(2, 1, 0) print "Calculating surface" verts, faces, norm, val = measure.marching_cubes(p, threshold, step_size=step_size, allow_degenerate=True) return verts, faces
第一个端口是外部端口(您现在要从主机访问该端口),第二个端口是内部端口(容器上的端口)。 您可以指定相同的外部端口。