如何查看 Docker 容器使用的端口

爱站 2024-10-24 25 0条评论
55Link友情链接交易平台
摘要: 查看Docker容器使用的端口最简单直接的方法就是使用dockerinspect命令。此命令会返回一个JSON格式的详细信息,其中包含容器的端口映射情况。要使用dockerinsp...

查看 Docker 容器使用的端口最简单直接的方法就是使用 docker inspect 命令。此命令会返回一个 JSON 格式的详细信息,其中包含容器的端口映射情况。

要使用 docker inspect 命令,可以在终端中执行以下命令:

docker inspect <container_name> | grep -i "HostPort\|ContainerPort"

将替换为您要查看的容器的名称或 ID。这个命令会输出容器内部端口和主机上映射的端口之间的关系。

例如,假设您有一个名为 "my-web-app" 的 Docker 容器,您可以使用以下命令查看它的端口信息:

docker inspect my-web-app | grep -i "HostPort\|ContainerPort"

输出结果可能如下所示:

"ContainerPort": 80,"HostPort": "8080"

这表示容器内部的 80 端口被映射到主机的 8080 端口。

另一种查看 Docker 容器使用的端口的方法是使用 docker port 命令。此命令可以显示容器内部端口和主机上映射的端口之间的关系。

要使用 docker port 命令,可以在终端中执行以下命令:

docker port <container_name> [<private_port>/[<proto>]]

将替换为您要查看的容器的名称或 ID,将替换为您想要查看的容器内部端口。您省略,命令会显示容器中所有已映射的端口。

例如,让我们再次查看名为 "my-web-app" 的容器,并查看它的 80 端口的映射情况:

docker port my-web-app 80

输出结果可能如下所示:

0.0.0.0:8080

这表示容器内部的 80 端口被映射到主机的 8080 端口。

您还可以使用 docker container ls 命令来查看正在运行的 Docker 容器及其端口映射情况。此命令会列出所有正在运行的容器,并显示容器内部端口和主机上映射的端口之间的关系。

要使用 docker container ls 命令,可以在终端中执行以下命令:

docker container ls

输出结果可能如下所示:

CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMESabc123def456nginx:latest"/docker-entrypoint.…"10 hours agoUp 10 hours0.0.0.0:80->80/tcpmy-web-app

在此输出中,您可以看到容器 "my-web-app" 将其 80 端口映射到主机的 80 端口。

您可以使用 docker stats 命令来实时监视 Docker 容器的资源使用情况,包括正在使用的端口。此命令会显示所有正在运行的容器的实时统计数据,包括 CPU、内存、网络和磁盘使用情况。

要使用 docker stats 命令,可以在终端中执行以下命令:

docker stats

输出结果可能如下所示:

CONTAINER IDNAMECPU %MEM USAGE / LIMITMEM %NET I/OBLOCK I/OPIDSabc123def456my-web-app0.07%15MiB / 31.37GiB0.04%1.11kB / 648B0B / 0B2

虽然此命令不会直接显示容器使用的端口,但您可以结合之前介绍的其他命令,比如 docker inspect docker port ,来获取更详细的信息。

在本文中,我们介绍四种查看 Docker 容器使用的端口的方法:使用 docker inspect 命令、 docker port 命令、 docker container ls 命令和 docker stats 命令。这些命令都有各自的优点和适用场景,可以帮助您更好地了解和管理 Docker 容器的端口使用情况。无论您选择哪种方法,都可以更好地控制和监控您的 Docker 容器,确保它们按预期运行。


Docker常用命令,值得收藏

使用指定的镜像来运行容器,并可选地在容器中运行指定的命令。

分离模式 :通过 -d选项指定;容器会在任务(进程)结束时退出。 前台模式 :可以将控制台连接到容器中进程的标准输入、输出、错误;通过-t选项可以为其分配一个伪终端;通过-i选项可以保持标准输入处于打开状态。

--rm选项能够在容器退出时自动删除容器。

罗列容器。

-a选项可以列出所有的容器。

查看容器的详细信息。

查看容器中运行的进程。

持续输出容器的资源使用情况。

查看容器的端口映射。

查看容器的日志(标准输出、错误的内容)。

-f选项可以持续输出容器的日志。

将本地终端的标准输入、输出、错误连接到容器。

在运行的容器中执行指定的命令。

使用 freezer cgroup 挂起容器中的所有进程(进程对挂起操作是无感知的)。

恢复容器中挂起的进程。

停止容器,终止容器中的进程:首先发送 SIGTERM信号给容器中的进程,一段时间之后发送SIGKILL信号。

启动停止的容器(还是运行之前给定的命令)。

删除指定的容器。

--force选项可以强制性删除运行的容器。

在容器和主机之间拷贝文件、目录。

将容器的文件系统(不包括卷的内容)导出为 tar 文件,后续可通过 docker import来加载镜像。

查看所有的顶层镜像。

-a选项可以查看所有的镜像。

搜索 docker hub。

拉取镜像。

基于源镜像创建一个包含 tag 的镜像。

推送镜像。

从 tar 文件中加载镜像。

保存镜像为 tar 文件,后续可通过 docker load来加载。

可通过 -o选项将镜像保存至指定的文件,默认输出到标准输出。

从标准输入或 tar 文件中加载镜像。

-i选项指定从 tar 文件中加载镜像。

删除本地镜像。 如果 IMAGE包含了 tag,且该镜像具有多个 tags,则此命令只是移除该 tag,而不会删除镜像。

-f选项可强制删除运行容器所用的镜像。

为已启动的docker添加端口映射

1、首先,您需要查看已映射的端口。 2、接着,检查容器的完整ID。 3、进入docker目录,进行下一步操作。 5、然后,对配置文件进行修改。 使用Json工具,查看和文件。 6、停止容器,以便进行修改。 7、将修改后的配置文件复制到指定目录的路径。 8、下载并安装jq工具。 9、最后,进行查看操作。

如何给正在运行的docker容器暴露网络端口?

如何给正在运行的Docker容器暴露网络端口?本文将分两种情况讨论这个知识点。 首先,如果你的容器还没有构建,那么在创建容器的时候添加-p参数即可实现端口映射。 当容器已启动时,有三种方法可以解决端口映射问题。 第一种方法是删除原有容器,重新构建,这虽然简单快捷,但如果是数据库镜像,重新构建会比较麻烦。 第二种方法是修改容器配置文件,重启Docker服务。 操作步骤为:停止运行的容器,查看容器的完整hash_of_the_container数值,打开配置文件,找到PortBindings配置项并修改,确保宿主机端口与容器端口一致。 如果需要修改或配置文件中的端口信息,也需相应调整。 最后,重启Docker服务并查看配置信息是否已更新。 第三种方法是利用docker commit生成新镜像,将容器的所有改动和配置信息导入新镜像,再使用新镜像启动一个容器,这种方式不会影响其他容器,但管理起来较为复杂。 对于在Docker Desktop for Mac环境下操作,由于宿主机是MacOS中运行的虚拟机,需使用justincormack/nsenter1镜像进入虚拟机,然后在/var/lib/docker/containers目录下修改配置文件,具体步骤与上述方法类似,但需要注意使用vi编辑器而非vim。 总结,给正在运行的Docker容器暴露网络端口主要通过在构建时添加-p参数、修改容器配置文件或利用docker commit生成新镜像的方法实现,具体选择哪种方法取决于实际需求和容器的状态。

文章版权及转载声明:

作者:爱站本文地址:https://www.awz.cc/post/1581.html发布于 2024-10-24
文章转载或复制请以超链接形式并注明出处爱网站

赞(0