如何查看 docker 容器中的 IP 地址

进入容器内部查看

1
2
3
4
5
6
7
8
# 进入容器
docker exec -it <container-id> /bin/bash

# 如果提示 bash 不存在,请将 /bin/bash 替换成 /bin/sh
docker exec -it <container-id> /bin/sh

# 查看 IP 地址
cat /etc/hosts

单独使用命令查看

1
2
3
4
5
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-id>

docker inspect <container-id>

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-name or container-id>

命令中包含 <> 符号的内容都需要替换为对应的容器的 ID 或者名称,可通过docker ps -aq获取到容器 ID 或者名称。

使用 bash 函数简化命令查看

可以考虑在 ~/.bashrc 中写一个 bash 函数:

1
2
3
function docker_ip() {
    docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
}

然后使用 source 刷新 bashrc 文件:

1
source ~/.bashrc

这下使用方法变成了:

1
docker_ip <container-ID>

获取所有容器手动寻找

1
2
3
4
5
# 如果使用 docker run 启动的容器:
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

# 如果是使用 docker compose 启动的:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)