在docker上运行但不可访问的Java ReST服务

在docker上运行但不可访问的Java ReST服务,docker,Docker,我是新来的码头工人 Docker版本18.03.0-ce,版本0520e24,在RHEL 7上运行 我使用创建了一个简单的ReST服务。uber jar在我的windows机器上运行良好,我可以通过浏览器访问该服务 Dockerfile: # fetch basic image FROM openjdk:latest # application placed into /opt/app RUN mkdir -p /opt/app WORKDIR /opt/app # local applic

我是新来的码头工人

Docker版本18.03.0-ce,版本0520e24,在RHEL 7上运行

我使用创建了一个简单的ReST服务。uber jar在我的windows机器上运行良好,我可以通过浏览器访问该服务

Dockerfile:

# fetch basic image
FROM openjdk:latest

# application placed into /opt/app
RUN mkdir -p /opt/app
WORKDIR /opt/app

# local application port
EXPOSE 8080
现在,我执行以下步骤

1.树立形象

docker build --tag=java-rest
2.运行容器

docker run -p 18080:8080 -t -i java-rest
docker cp /localhome/ojoqcu/code/java/gs-rest-service-0.1.0.jar 38ec56c99135:/opt/app/gs-rest-service-0.1.0.jar
3.检查集装箱是否已升起

[root@l5341t ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS                     NAMES
38ec56c99135        java-rest           "bash"              About a minute ago   Up About a minute               0.0.0.0:18080->8080/tcp   infallible_yalow
4.将jar文件复制到容器中

docker run -p 18080:8080 -t -i java-rest
docker cp /localhome/ojoqcu/code/java/gs-rest-service-0.1.0.jar 38ec56c99135:/opt/app/gs-rest-service-0.1.0.jar
5.运行容器和罐子

docker run -p 18080:8080 -t -i java-rest
root@38ec56c99135:/opt/app# ls
gs-rest-service-0.1.0.jar
root@38ec56c99135:/opt/app#
root@38ec56c99135:/opt/app#
root@38ec56c99135:/opt/app# java -jar gs-rest-service-0.1.0.jar
6.在容器上,应用程序正在运行

root@38ec56c99135:/opt/app# ps -eaf
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 13:43 pts/0    00:00:00 bash
root         8     1  0 13:47 pts/0    00:00:14 java -jar gs-rest-service-0.1.0.
root        54     0  0 14:16 pts/1    00:00:00 bash
root        60    54  0 14:17 pts/1    00:00:00 ps -eaf
答复如下:

1.来自同一台机器(RHEL 7)


我没有深入研究Spring代码(它在WIndows/Linux机器上运行得很好,但在容器中却不行!),但问题似乎真正在于代码,而不是Docker配置。我在第2页找到了答案。

。带Spring的docker正在响应,但表示您没有配置任何/path。可能示例REST有一个@RequestMapping(“/greeting”),因此您应该调用。从本地RHEL 7机器,你不应该连接到8080而不是18080吗?