【问题标题】:Map Spring Boot port to 80 in docker container在 docker 容器中将 Spring Boot 端口映射到 80
【发布时间】:2019-10-19 14:30:44
【问题描述】:

我像这样在 Spring boot application.properties 中指定 PORT 80 server.port=80 所以当在 localhost 上运行时,它在端口 80 上运行

现在我需要在 docker 容器中运行它,并且我在端口映射上做了一些尝试。

docker run -d -p 80:8080 DOCKERHUB_REPO/DOCKER_IMAGE

然后我做了

docker run -d -p 80:80 DOCKERHUB_REPO/DOCKER_IMAGE

这些都不起作用。我应该如何进行?任何帮助将不胜感激。谢谢

【问题讨论】:

  • 端口小于 1024 不能作为非 root 用户使用...使用 8080 等默认值有什么问题?
  • 可以发一下docker容器的日志吗?

标签: spring maven spring-boot docker port


【解决方案1】:

我认为首先你应该确保 docker 容器中的应用程序确实在端口 80 上启动。

docker exec -it <process_id> bash

curl http://localhost:80/<somthing, some reset or actuator if you have it>

设置完成后,请确保您已在 Dockerfile 中指定 EXPOSE 80。阅读 the accepted answer 以了解 -pEXPOSE 选项的作用。

现在,使用-p 运行很好,但是可能您没有访问端口80 的权限。为了消除图片中与docker 相关的问题,我建议使用另一个大于1024 的端口进行测试,例如8080之类的东西。 如果它有效(使用 Expose 和 -p 选项)肯定比它在主机上的安全性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2020-07-23
    • 2019-08-28
    相关资源
    最近更新 更多