Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
rustfs6 分钟前
使用 podman 容器化安装 RustFS 详细指南
docker·rust·podman
Herry_64428082517 分钟前
docker构建前后端镜像配置说明
docker·docker构建镜像
Ka1Yan10 小时前
Docker:基本概念与快速入门
运维·docker·容器
糠帅傅蓝烧牛肉面13 小时前
单实例多MCP聚合服务:两种实现方案深度对比
前端·docker·ai
杨浦老苏16 小时前
离线优先的自托管笔记应用Anchor
笔记·docker·群晖
哪里不会点哪里.20 小时前
Docker
运维·docker·容器
七七powerful20 小时前
docker 搭建wtsap代理
运维·docker·容器
Shanxun Liao21 小时前
Docker vlmcsd 完整管理指南
运维·docker·容器
怒放de生命20101 天前
前端子包+docker流水线部署+nginx代理部署
前端·nginx·docker
Java程序员威哥1 天前
云原生Java应用优化实战:资源限制+JVM参数调优,容器启动快50%
java·开发语言·jvm·python·docker·云原生