Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

格式是:EXPOSE <端口1> [<端口2>...]

例如: EXPOSE 8080 8081 8082

特别注意:

EXPOSE 指令是声明容器运行时提供服务的端口,请注意这只是一个声明,并没有实际作用,在容器运行时并不会因为这个声明应用就会开启这个端口的服务。

好处:

既然没有实际作用,为什么还要有这个命令呢?

在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

注意事项:

要将 EXPOSE 和在运行时使用 -p <宿主端口>:<容器端口> 区分开来。-p,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 EXPOSE 仅仅是声明容器打算暴露什么端口而已,并不会自动在宿主进行端口映射。

相关推荐
眷蓝天3 小时前
Docker 镜像瘦身:从 GB 到 MB 的优化实践
运维·docker·容器
一叶飘零_sweeeet6 小时前
Docker Compose实战指南
运维·docker·容器
亚空间仓鼠6 小时前
Docker 容器技术入门与实践 (六):Docker镜像瘦身
docker·容器·eureka
SPC的存折7 小时前
10、Docker容器故障排查
linux·运维·数据库·docker·容器
乌托邦的逃亡者8 小时前
Dockerfile的配置和使用
linux·运维·docker·容器
七七powerful9 小时前
loki监控docker容器&系统&nginx日志的告警规则
nginx·docker·容器
SPC的存折10 小时前
8、Docker镜像瘦身
运维·docker·容器
江湖有缘12 小时前
可视化Docker资源清理方案:PruneMate容器化部署实战
运维·docker·容器
亚空间仓鼠12 小时前
Docker 容器技术入门与实践 (四):Docker存储与网络
网络·docker·容器
java_logo12 小时前
Docker 部署 Hermes Agent 完整指南(Windows / Linux 通用)
linux·windows·docker·hermes-agent部署·docker部署hermes·hermes-agent教程·hermes-agent文档