docker_practice/image/dockerfile/expose.md

8 lines
853 B
Go
Raw Normal View History

### EXPOSE 声明端口
格式为 `EXPOSE <端口1> [<端口2>...]`
`EXPOSE` 指令是声明运行时容器提供服务端口这只是一个声明在运行时并不会因为这个声明应用就会开启这个端口的服务 Dockerfile 中写入这样的声明有两个好处一个是帮助镜像使用者理解这个镜像服务的守护端口以方便配置映射另一个用处则是在运行时使用随机端口映射时也就是 `docker run -P` 会自动随机映射 `EXPOSE` 的端口
要将 `EXPOSE` 和在运行时使用 `-p <宿主端口>:<容器端口>` 区分开来`-p`是映射宿主端口和容器端口换句话说就是将容器的对应端口服务公开给外界访问 `EXPOSE` 仅仅是声明容器打算使用什么端口而已并不会自动在宿主进行端口映射