我有一个在 Google Compute Engine 上运行的 docker 镜像。该镜像包含一个在端口 9000 上运行的 Spring Boot 应用程序。
公开于 http://<ip>:9000
我可以毫无问题地访问。我正在尝试将公开端口配置为 80
以便将 DNS 记录配置为仅指向 IP 地址。
我的问题是如何实现这一点,因为文档让我感到困惑。我正在使用在线 GCP 控制台(Web 界面)进行部署,并且没有字段可以指定 docker run -p 9000:80
命令可以解决我的问题(如果有,请纠正我)。
那么我需要在 Spring Boot 设置中重新映射端口吗?或者在 Docker 容器内?或者我应该在GCP中配置一些转发规则?感谢您的澄清!
我的DOCKER
文件如下所示:
FROM gcr.io/distroless/java
VOLUME /tmp
ADD build/libs/*.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-jar","app.jar"]
我正在使用 GCP 的容器优化操作系统。
最佳答案
tldr:你不能
当您以这种方式在计算引擎中部署容器时,docker网络位于 host network mode
,这意味着 ( doc ) : a container shares the host's network stack and all interfaces from the host are available to the container.
因此计算引擎将直接在他自己的接口(interface)上公开容器端口。因此,您必须配置容器以公开正确的端口。
关于docker - 使用 Docker 映射 Compute Engine 中的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52265028/