Spring boot Spring Boot,Docker Compose:始终默认为端口80

Spring boot Spring Boot,Docker Compose:始终默认为端口80,spring-boot,docker-compose,Spring Boot,Docker Compose,我使用Spring文档中建议的docker文件创建了docker容器: FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] application.properties: server.host=localhost server.port=80 Docker-

我使用Spring文档中建议的docker文件创建了docker容器:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
application.properties:

server.host=localhost
server.port=80
Docker-compose.yml指定端口为88:

version: '3.7'
services:
    app:
        image: app:latest
        container_name: app
        network_mode: host
        ports:
            - 8888:8888
但每当我启动我的应用程序时,它默认为端口80,忽略docker compose.yml中的端口字段。

您指定:

network_mode: host
这意味着使用了主机网络。
因此,应用程序可以在
80
(主机端口)上访问,仅此而已

要使其在8888上可用,请使用正确的映射:

- 8888:80
在主机的端口
8888
上发布您在容器的端口
80
上获得的内容(第二个值)。

您指定:

network_mode: host
这意味着使用了主机网络。
因此,应用程序可以在
80
(主机端口)上访问,仅此而已

要使其在8888上可用,请使用正确的映射:

- 8888:80

它在主机的端口
8888
上发布您在容器的端口
80
上获得的内容(第二个值)。

这段代码只需创建一个从主机8888到容器8888的DNAT

ports:
  - 8888:8888
您的spring boot必须在8888上侦听,否则DNAT规则将指向死端口

这可能与您的
应用程序.properties
/
应用程序.yml


在这些文件中查找
server.port=80

这段代码只需创建一个从主机8888到容器8888的DNAT

ports:
  - 8888:8888
您的spring boot必须在8888上侦听,否则DNAT规则将指向死端口

这可能与您的
应用程序.properties
/
应用程序.yml


在这些文件中查找
server.port=80

谢谢。愚蠢的错误是我没有打开浏览器查看应用程序运行的位置。它确实在正确的端口上运行,但是在容器中运行的Tomcat总是说端口80,所以我感到困惑。非常感谢。不客气。这在一开始可能确实令人困惑:)谢谢。愚蠢的错误是我没有打开浏览器查看应用程序运行的位置。它确实在正确的端口上运行,但是在容器中运行的Tomcat总是说端口80,所以我感到困惑。非常感谢。不客气。这在一开始可能确实令人困惑:)