Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用

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

例如: EXPOSE 8080 8081 8082

特别注意:

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

好处:

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

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

注意事项:

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

相关推荐
启明真纳1 小时前
统信操作系统使用默认yum源安装 Docker 的踩坑
运维·docker·容器
lee_yanyi2 小时前
《一键式江湖:Docker Compose中间件部署108式》开篇:告别“配置地狱”,从此笑傲云原生武林!》
docker·云原生·中间件
weisian1513 小时前
云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)
docker·云原生·容器
David爱编程3 小时前
Service 与 Headless Service 全面对比与实战指南
docker·容器·kubernetes
巨懵3 小时前
不使用dockerfile的方式制作一个Ubuntu20.04的镜像
docker
菠萝崽.7 小时前
安装docker,在docker上安装mysql,docker上安装nginx
java·mysql·nginx·docker·软件工程·springboot·开发
leo·Thomas14 小时前
Rundeck 介绍及安装:自动化调度与执行工具
docker·自动化·运维工具·rundeck
技术liul16 小时前
Docker Compose和 Kubernetes(k8s)区别
docker·容器·kubernetes
竹木一54018 小时前
Docker拉取镜像代理配置实践与经验分享
经验分享·docker·容器
小余吃大鱼18 小时前
CentOS中在线安装Docker(超详细)
linux·docker·centos