Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
三口吃掉你9 小时前
Docker安装Elasticsearch、kibana、IK分词器
elasticsearch·docker·kibana·ik分词器
fly五行10 小时前
Windows 系统下使用 Docker 安装 Milvus 向量数据库
windows·docker·milvus
爱宇阳10 小时前
离线环境下运行 Docker 容器编排指南
docker·容器·eureka
Java陈序员11 小时前
免费开源!一款操作 MySQL 和 MariaDB 的 Web 界面工具!
mysql·docker·php·mariadb
梁正雄12 小时前
9、dockerfile
docker·dockerfile·dockerfile基础用法
panplan.top12 小时前
Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
linux·python·docker·微服务·k8s·tornado
-指短琴长-13 小时前
Docker基础【Ubuntu安装/Windows安装】
windows·ubuntu·docker
Z_Xshan13 小时前
docker 容器web站点 中文文件名访问404问题
linux·开发语言·docker
回忆是昨天里的海14 小时前
k8s集群-节点间通信之安装kube-flannel插件
java·docker·kubernetes
ZHE|张恒15 小时前
Docker 安装 MinIO(20250422)
运维·docker·容器