当我尝试使用docker服务器启动器运行spring启动应用程序但没有访问权限时



当我运行命令

docker-compose up——build

在cmd命令中显示Tomcat在端口:8089 (http)上启动,上下文路径为'/*****

但是当我尝试连接到一些API在邮差它给我错误:socket挂起

这是我的docker-compose:

version: '3.3'
services:
web:
build:
dockerfile: Dockerfile
image: 2021.jar
image: tomcat:9.0-jdk8
volumes:
- ./ROOT:/usr/local/tomcat/webapps/ROOT
- ./repository:/usr/local/tomcat/webapps/ROOT/repository
ports:
- '8089:8080'
environment:
- JAVA_OPTS= -Ddb.host=localhost -Ddb.catalog=gohybridit_dev -Ddb.port=5432 -Ddb.username=postgres -Ddb.password=123

和这个我的Dockerfile

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} 2021.jar
ENTRYPOINT ["java","-jar","2021.jar"]

我猜您正在应用程序属性中设置端口8089。如果是,可以:

a)更新docker-compose改为说'8089:8089'

b)更新应用程序属性,将端口设置为8080(或者完全删除它,因为这是默认值)

基本上,这些端口是<outside container>:<inside container>。我个人会根据第一个选项将所有端口匹配到8089,以减少混乱。

我用这个命令解决了我的问题

docker run -d -p portNum:portNum --restart always XXXXX.jar