你有没有试过查找某个 Docker 容器的本地网络 IP 地址?并试图从另一个容器连接到它?今天给大家分享一个 Docker 命令,可以一键获取 Docker 容器的本地 IP 地址。
你可以输入这个命令:
docker inspect --format='{{ $n := .Name }}{{range .NetworkSettings.Networks}}{{ print .IPAddress "\\t" $n "\\n"}}{{end}}' $(sudo docker ps -q)
输出如下:

这条命令由两部分组成:docker ps -q
和 docker inspect
,我们分别进行解释。
第一部分:docker ps -q
sudo docker ps -q
docker ps
: 列出当前正在运行的 Docker 容器。q
: 只显示容器的 ID。
这一部分命令会返回所有正在运行的容器的 ID 列表。
第二部分:docker inspect --format=...
docker inspect --format='{{ $n := .Name }}{{range .NetworkSettings.Networks}}{{ print .IPAddress "\\t" $n "\\n"}}{{end}}' ...
docker inspect
: 查看一个或多个容器的详细信息。-format='...'
: 使用 Go 模板语法格式化输出。
在这个格式字符串中:
{{ $n := .Name }}
: 定义一个名为$n
的变量,并将容器的名称赋值给它。{{range .NetworkSettings.Networks}}...{{end}}
: 遍历容器的网络设置中的所有网络。{{ print .IPAddress "\\t" $n "\\n"}}
: 输出当前网络的 IP 地址和容器名称,以制表符(\\t
)分隔,并在末尾换行。
结合在一起,格式化字符串的作用是:
- 对每个容器,遍历其所有网络。
- 输出每个网络的 IP 地址和容器名称。
完整命令
docker inspect --format='{{ $n := .Name }}{{range .NetworkSettings.Networks}}{{ print .IPAddress "\\t" $n "\\n"}}{{end}}' $(sudo docker ps -q)
该命令的作用是:
- 通过
sudo docker ps -q
获取所有正在运行的容器 ID。 - 对每个容器 ID,使用
docker inspect
获取详细信息。 - 使用 Go 模板语法格式化输出,显示每个容器的网络 IP 地址及其名称。
最终输出的格式类似于:
172.17.0.2 /container_name1 172.17.0.3 /container_name2 ...
这条命令有助于快速获取所有正在运行的 Docker 容器的 IP 地址及其名称,方便在容器之间进行网络连接。
订阅评论
登录
0 评论
最旧