首页 > 解决方案 > docker deploymnet 成功后无法在 localhost 上连接应用程序

问题描述

我正在尝试在 docker 容器上部署 Spring Boot War 文件

这是我的码头文件:

FROM tomcat:alpine

RUN wget -O /usr/local/tomcat/webapps/ROOT.war -U admin:Learning http://localhost:8082/artifactory/demoArtifactory/com/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.war

EXPOSE 8080

CMD ["catalina.sh", "run"]

在此处输入图像描述

在此处输入图像描述

我无法连接到 localhost:7000

更新: 这是 docker run 命令:

docker run -it --name demo-application -d -p 8080:8080 hmt/demo-application:49

"PortBindings": {
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8080"
                    }
                ]
            }

现在我的 tomcat 已在 localhost:8080 上运行,但我无法访问我的应用程序

更新:

@SpringBootApplication
public class DemoApplication{

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

标签: spring-bootdockerdockerfilewar

解决方案


看你的端口信息:容器的端口发布在宿主机的端口
上。 但是看看你的日志应用程序:它部署在(而不是)上。 您想要的是在主机端口上发布容器端口,例如:91007000
80809100
80807000

docker run -p 7000:8080 foo-image

推荐阅读