Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
一夜空中最亮的星一6 小时前
【Linux】ubuntu24.04 安装docker
linux·docker·eureka
会飞的小蛮猪7 小时前
Ubuntu24.04基于Docker部署K8s(使用私服部署)
经验分享·docker·云原生·容器·kubernetes
weixin_436525079 小时前
使用 idea 命令行构建 Docker 镜像并部署到云服务器
linux·docker·github
h***015411 小时前
Docker启动安装nacos(详情讲解,全网最细)
运维·docker·容器
人工智能训练12 小时前
windows系统中的docker,xinference直接运行在容器目录和持载在宿主机目录中的区别
linux·服务器·人工智能·windows·ubuntu·docker·容器
阿拉斯攀登13 小时前
docker介绍
服务器·docker
谷隐凡二13 小时前
docker的简单介绍
docker·容器·eureka
wljt13 小时前
Docker常用命令
运维·docker·容器
百***480715 小时前
从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
docker·容器·node.js
敲上瘾16 小时前
Docker镜像构建优化指南:CMD/ENTRYPOINT、多阶段构建与缓存优化
运维·缓存·docker·容器·架构