docker 部署成功后无法连接本地主机上的应用程序
Unable to connect application on localhost after docker deploymnet is successful
我正在尝试在 docker 容器
上部署 spring 启动 war 文件
这是我的 docker 文件:
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 运行 命令:
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);
}
}
看看你的端口信息:
容器的端口 9100
发布在主机上的端口 7000
上。
但是看看您的日志应用程序:它部署在 8080
(而不是 9100
)。
你想要的是在主机的 7000
端口上发布容器端口 8080
例如:
docker run -p 7000:8080 foo-image
1.You 需要扩展 SpringBootServletInitializer.Spring Boot Servlet Initializer class 文件允许您在使用 Servlet 容器启动时配置应用程序
参考:https://www.tutorialspoint.com/spring_boot/spring_boot_tomcat_deployment.htm
2.Rename 您的 war 文件从 ROOT.war 到类似 sample.war 的文件。ROOT 默认应用程序通常是 Tomcat Manager
我正在尝试在 docker 容器
上部署 spring 启动 war 文件这是我的 docker 文件:
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 运行 命令:
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);
}
}
看看你的端口信息:
容器的端口 9100
发布在主机上的端口 7000
上。
但是看看您的日志应用程序:它部署在 8080
(而不是 9100
)。
你想要的是在主机的 7000
端口上发布容器端口 8080
例如:
docker run -p 7000:8080 foo-image
1.You 需要扩展 SpringBootServletInitializer.Spring Boot Servlet Initializer class 文件允许您在使用 Servlet 容器启动时配置应用程序 参考:https://www.tutorialspoint.com/spring_boot/spring_boot_tomcat_deployment.htm
2.Rename 您的 war 文件从 ROOT.war 到类似 sample.war 的文件。ROOT 默认应用程序通常是 Tomcat Manager