未配置Docker端口映射,为何仍可访问Container-Optimized OS的GCE应用?
未配置Docker端口映射却能访问GCE上的Spring Boot应用问题
我在谷歌云平台(GCP)的谷歌计算引擎(GCE,基于Container-Optimized OS)上部署Spring Boot应用。按常规Docker使用逻辑,必须通过docker run -it -p 8080:8080 spring-app命令将容器端口映射到主机端口,才能从外部访问应用,但实际未添加端口映射参数时,依然能正常访问到应用。
我的Spring Boot应用Dockerfile(项目名:iampotato)如下:
FROM adoptopenjdk/openjdk11:latest AS TEMP_BUILD_IMAGE ENV APP_HOME=/usr/app/ WORKDIR $APP_HOME COPY build.gradle settings.gradle gradlew $APP_HOME/ COPY gradle $APP_HOME/gradle/ RUN ./gradlew -x test --info || return 0 COPY . . RUN ./gradlew -x test build FROM adoptopenjdk/openjdk11:latest ENV ARTIFACT_NAME=iampotato.jar ENV APP_HOME=/usr/app/ WORKDIR $APP_HOME COPY --from=TEMP_BUILD_IMAGE $APP_HOME/build/libs/$ARTIFACT_NAME . EXPOSE 8080 ENTRYPOINT java -Dspring.profiles.active=dev -jar $ARTIFACT_NAME
相关环境信息:
- Spring Boot 2.7.9
- OpenJDK 11
- 运行环境:基于Container-Optimized OS的GCE实例
- Docker版本:20.10.12
内容的提问来源于stack exchange,提问作者Sungjin Park
相关产品推荐
相关产品推荐

