商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何使用 docker container port 命令查询端口映射

如何使用 docker container port 命令查询端口映射

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

介绍

在本实验中,你将学习如何使用 CODE_0 命令来检查正在运行的 Docker 容器的端口映射情况。我们将首先启动一个带有发布端口的 Nginx 容器,然后探索如何列出该容器的所有已发布端口映射。

你还将学习如何列出特定的已发布 TCP 和 UDP 端口映射,并了解查询不存在的 UDP 映射时的行为表现。最后,我们将演示如何在不显式指定协议的情况下列出特定的已发布端口映射。

启动带有端口映射的容器

在这一步骤中,我们将学习如何启动一个 Docker 容器并将其端口发布到宿主机。发布端口允许外部访问容器内运行的服务。

首先,让我们从 Docker Hub 拉取 CODE_0 镜像。该镜像包含了一个可用于演示的简单 Web 服务器

docker pull nginx

你将看到显示镜像正在下载的输出。下载完成后,可以通过以下命令验证镜像已本地可用:

docker images

现在,我们将启动一个 CODE0 容器,并将容器内的 80 端口发布到宿主机的 8080 端口。CODE1 参数表示以分离模式(后台运行)启动容器,CODE2 参数用于端口映射,CODE3 是镜像名称。

docker run -d -p 8080:80 nginx

输出结果将是容器 ID。这表示容器已成功启动,其内部 80 端口现在可以通过你的 LabEx 虚拟机的 8080 端口访问。

要验证 Web 服务器是否正常运行且可访问,你可以使用 CODE_0 访问宿主机上的发布端口。

curl http://localhost:8080

你应该能在终端看到 Nginx 默认欢迎页面的 HTML 输出。这确认了端口映射工作正常,你可以从宿主机访问容器内运行的服务。

列出容器的所有已发布端口映射

在这一步骤中,我们将学习如何列出正在运行的 Docker 容器的已发布端口映射。这对于确认哪些端口被暴露以及它们如何映射到宿主机非常有用。

我们可以使用 CODE0 命令后接容器 ID 或名称来列出特定容器的所有已发布端口映射。首先,让我们获取上一步骤中启动的 CODE1 容器的容器 ID。

docker ps -q --filter ancestor=nginx

该命令将输出容器 ID。复制这个 ID,我们将在下一个命令中使用它。

现在,使用 CODE0 命令配合容器 ID 来列出端口映射。请将 CODE1 替换为你获取到的实际 ID。

docker port 

你应该会看到类似 CODE_0 的输出。这表示容器的内部 80 端口(使用 TCP 协议)被映射到所有主机接口(0.0.0.0)的 8080 端口。

这个命令是快速查看运行中容器配置的所有端口映射的便捷方式。

查询指定 TCP 端口映射

在这一步骤中,我们将优化 CODE_0 命令的使用,专门查询某个已发布的端口映射及其协议类型。当容器暴露了多个使用不同协议的端口时,这个功能特别有用。

要查询特定的 TCP 端口映射,我们需要在 CODE0 命令后附加容器端口和协议类型(CODE1)。首先,如果你手头没有容器 ID,请再次获取:

docker ps -q --filter ancestor=nginx

现在,使用 CODE0 命令配合容器 ID,并指定内部 80 端口和 TCP 协议。请将 CODE1 替换为你的实际容器 ID。

docker port < container_id > 80/tcp

输出结果应为 CODE_0。这明确显示了容器内部 TCP 80 端口所映射到的主机地址和端口号。相比列出所有端口映射,这个方法能更精确地获取你关心的特定映射和协议信息。

查询指定 UDP 端口映射(预期报错)

在此步骤中,我们将尝试查询CODE_0容器的特定UDP端口映射。鉴于Nginx通常仅将TCP协议用作其Web服务器协议,我们预计该命令将无法找到UDP映射,可能会返回错误或无输出。这展示了在查询端口映射时如何指定协议,以及当该协议的映射不存在时会出现何种情况。

首先,获取你的 CODE_0 容器 ID:

docker ps -q --filter ancestor=nginx

现在,使用 CODE0 命令配合容器 ID,并指定内部 80 端口和 UDP 协议(CODE1)。请将 CODE_2 替换为你的实际容器 ID。

docker port < container_id > 80/udp

你应该会观察到该命令没有输出或返回错误信息。这是因为当前配置的 CODE_0 容器并未使用 UDP 协议暴露 80 端口。这凸显了在查询端口映射时指定正确协议的重要性。

查询指定端口映射(不指定协议类型)

在本步骤中,我们将学习如何在不显式指定协议(TCP 或 UDP)的情况下查询特定端口映射。当省略协议时,CODE_0 命令会列出指定容器端口的所有 TCP 和 UDP 映射。

首先,获取你的 CODE_0 容器 ID:

docker ps -q --filter ancestor=nginx

现在,使用 CODE0 命令配合容器 ID,并指定内部 80 端口但不包含协议。请将 CODE1 替换为你的实际容器 ID。

docker port < container_id > 80

由于我们的 CODE0 容器仅针对 80 端口配置了 TCP 映射,输出结果将为 CODE1。如果容器同时存在 80 端口的 TCP 和 UDP 映射,两者都会被列出。这种方法可以方便地查看特定内部端口的所有映射,而无需考虑协议类型。

总结

在本实验中,我们学习了如何使用 CODE0 命令启动 Docker 容器并将其内部端口发布到宿主机。我们通过运行 Nginx 容器并将其内部 80 端口映射到宿主机的 8080 端口进行了演示,并使用 CODE1 验证了可访问性。

接着,我们对CODE_0命令展开了探索,它能列出运行中容器的已发布端口映射。我们学习了怎样列出所有已发布端口,以及如何查询特定的TCP或UDP端口映射,并且知道了查询不存在的UDP映射会引发错误。我们还实际操作了在不明确指定协议的情况下,列出特定端口映射的方式。

本文转载于:https://labex.io/zh/tutorials/docker-how-to-use-docker-container-port-command-to-list-port-mappings-555116 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注