EXPOSE指令在Docker容器内公开具有指定协议的特定端口。用最简单的术语来说,EXPOSE指令告诉Docker从指定端口获取运行时所需的所有信息。这些端口可以是TCP或UDP,但默认情况下是TCP。同样重要的是要理解EXPOSE指令仅充当Docker映像的创建者与运行Container的人员之间的信息平台(例如Documentation)。需要注意的几点是:
- 它可以使用TCP或UDP协议公开端口。
- 如果未指定其他协议,则默认协议为TCP。
- 它不映射主机上的端口。
- 启动容器时,可以使用发布标志( -p)覆盖它。
通过指定协议来暴露端口的语法为:
Syntax: EXPOSE /
在这篇文章中,我们将讨论如何使用您Dockerfile EXPOSE指令一些实际的例子和使用发布标志覆盖它,而开始泊坞容器。
请按照以下步骤在Docker容器中实现EXPOSE指令:
第1步:使用EXPOSE指令创建Dockerfile
让我们用两个EXPOSE指令创建一个Dockerfile ,一个使用TCP协议,另一个使用UDP协议。
FROM ubuntu:latest
EXPOSE 80/tcp
EXPOSE 80/udp
第2步:构建Docker映像
要使用上述Dockerfile构建Docker映像,可以使用Docker Build命令。
sudo docker build -t expose-demo .
步骤3:运行Docker容器
要运行Docker容器,可以使用Docker run命令。
sudo docker run -it expose-demo bash
步骤4:验证端口
要验证暴露的端口,可以使用Docker inspect命令。
sudo docker image inspect --format='' expose-demo
在上面的屏幕截图中,您可以看到ExposedPorts对象包含我们在Dockerfile中指定的两个公开端口。
步骤5:发布端口
要发布所有公开的端口,可以使用-p标志。
sudo docker run -P -d expose-demo
步骤6:检查已发布的端口
您可以使用以下命令仅列出容器来检查已发布的端口。但是,请确保容器正在运行。
sudo docker start
sudo docker container ls
最后,在这篇文章中,我们讨论了如何使用EXPOSE指令Dockerfile内揭露使用指定的协议的集装箱港口和使用-p标志发布的端口。