我真的不明白Dockerfile中的以下命令
EXPOSE 8080
我构建了一个java应用程序并通过这个Dockerfile对其进行了文档化
FROM openjdk:10-jre-slim
WORKDIR /app
COPY ./target/display-console-1.0-SNAPSHOT.jar /app
CMD ["java", "-jar", "display-console-1.0-SNAPSHOT.jar"]
我的java应用程序有一个监听端口8085的控制器。所以当我从我的localhost使用它时,我只是做一些类似的事情
docker run -ti my-docker-hub-account/my-image -p 8085:8085
一切都完美无缺!
那么,命令的意义何在?
EXPOSE XXXX
在Dockerfile?
提前致谢
官方文件在目的上非常清楚
EXPOSE指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种文档,用于发布哪些端口。要在运行容器时实际发布端口,请在docker run上使用-p标志发布并映射一个或多个端口,或使用-p标志发布所有公开的端口并将它们映射到高阶端口。
因此,如果您使用< code>-P(大写P)选项,它会将列出的端口暴露给< code>EXPOSED(主机上的随机端口)。
它还可以为使用和重新使用这些other文件的其他人提供文档。
EXPOSE命令允许在指定的端口/端口范围内通过网络访问docker容器。
当您从docker容器运行Web服务时,您必须使用此命令,以便您可以从容器外部访问它。