Author:赵志乾
Date:2024-08-02
Declaration:All Right Reserved!!!
1. 简介
EXPOSE在Dockerfile中用于标识容器在运行时需要暴露的端口,从而让别人知道容器应该监听哪些端口,从而构建易于理解的容器镜像;需要注意的是该指令仅具有标识作用;
2. 语法
# 标识一个端口
EXPOSE 80# 标识多个端口
EXPOSE 80 443
由于EXPOSE仅具有标识作用,为了在运行时能够实现容器同外部通信,需要在运行容器时使用-p标志来指定端口映射;例如,要将容器的80端口映射到宿主机的8080端口,同时将443端口映射到宿主机的8443端口,可以按如下方式运行容器:
docker run -p 8080:80 -p 8443:443 <image_name>
3. 总结
EXPOSE仅用于在Dockerfile中声明容器需要暴露的端口(功能上可有可无,但从镜像可理解的角度出发,推荐显示声明需要暴露的端口),实际使用时需要结合docker run命令中的-p标志将运行时容器端口映射到宿主机端口上。