Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
70asunflower2 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
春日见3 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe24 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天4 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua6 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
醇氧7 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
技术路上的探险家7 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
70asunflower10 小时前
用Docker创建不同的容器类型
运维·docker·容器
小Pawn爷11 小时前
3.Dockerfile
docker
CodeGolang11 小时前
Docker容器化部署Zabbix监控系统完整指南
docker·容器·zabbix