Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
llrraa201014 小时前
配置docker国内镜像源
运维·docker·容器
华为云开发者联盟16 小时前
告别繁琐操作,华为云码道 + Docker重塑远程开发体验
人工智能·学习·docker·华为云·软件开发·华为云码道
m_1368716 小时前
Docker Desktop WSL2 启动失败:ext4.vhdx 拒绝访问(E_ACCESSDENIED)完整解决方案
docker
米高梅狮子18 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
米高梅狮子19 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
代码熬夜敲Q20 小时前
Docker基础
运维·docker·容器
亚空间仓鼠20 小时前
Docker容器化高可用架构部署方案(十四)
docker·容器·架构
Zhu7581 天前
【配置优化】docker29及以上版本配置优化。
docker
土星云SaturnCloud1 天前
土星云AI边缘计算-算法运行环境搭建:Docker部署全流程实操
服务器·人工智能·docker·ai·边缘计算
fanzhonghong1 天前
javaWeb后端开发之Linux项目部署3和Docker部署1
linux·服务器·前端·docker