📜  Docker – EXPOSE指令

📅  最后修改于: 2021-04-17 03:54:29             🧑  作者: Mango

EXPOSE指令在Docker容器内公开具有指定协议的特定端口。用最简单的术语来说,EXPOSE指令告诉Docker从指定端口获取运行时所需的所有信息。这些端口可以是TCP或UDP,但默认情况下是TCP。同样重要的是要理解EXPOSE指令仅充当Docker映像的创建者与运行Container的人员之间的信息平台(例如Documentation)。需要注意的几点是:

  • 它可以使用TCPUDP协议公开端口。
  • 如果未指定其他协议,则默认协议为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

使用EXPOSE指令

步骤6:检查已发布的端口

您可以使用以下命令仅列出容器来检查已发布的端口。但是,请确保容器正在运行。

sudo docker start 
sudo docker container ls

已发布的端口

最后,在这篇文章中,我们讨论了如何使用EXPOSE指令Dockerfile内揭露使用指定的协议的集装箱港口和使用-p标志发布的端口。