在运维工作中,docker 如何查看网络?
在 Docker 运维工作中,查看网络信息主要通过以下命令实现:
1. 查看所有 Docker 网络列表
docker network ls
输出示例:
NETWORK ID NAME DRIVER SCOPE
a1b2c3d4e5f6 bridge bridge local
f1e2d3c4b5a6 host host local
1234567890ab none null local
my-network custom bridge local
- 默认网络:
bridge
(默认网桥)、host
(共享主机网络)、none
(无网络)。 - 自定义网络:用户创建的网络(如
my-network
)。
2. 查看网络详细信息
docker network inspect <网络名称或ID>
示例:
docker network inspect bridge
输出内容:
- 子网和网关:
"Subnet": "172.17.0.0/16"
,"Gateway": "172.17.0.1"
- 已连接的容器:
"Containers"
字段列出所有关联容器及其 IP 地址。 - 配置细节:包括 DNS 设置、驱动选项等。
3. 查看容器网络信息
docker inspect <容器名称或ID> | grep -i "Network"
或直接提取网络配置:
docker inspect -f '{{json .NetworkSettings.Networks}}' <容器名称或ID> | jq
输出示例:
{
"bridge": {
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
"Gateway": "172.17.0.1",
"NetworkID": "a1b2c3d4e5f6"
}
}
4. 查看容器网络端口映射
docker port <容器名称或ID>
输出示例:
80/tcp -> 0.0.0.0:8080
显示容器内部端口到宿主机的映射关系。
5. 查看容器内部网络接口
进入容器内部查看:
docker exec -it <容器名称或ID> ip addr # Linux 容器
docker exec -it <容器名称或ID> ifconfig # 旧版 Linux
docker exec -it <容器名称或ID> netsh interface ip show config # Windows 容器
6. 查看 Docker 主机网络接口
Docker 会在宿主机创建虚拟接口(如 docker0
):
ip addr show docker0 # Linux
ifconfig docker0 # macOS 或旧版 Linux
关键接口:
docker0
:默认网桥的宿主机接口。veth*
:容器与宿主机连接的虚拟网卡对。
7. 查看 DNS 配置
docker network inspect <网络名称> | grep -i "dns"
或查看容器内部的 /etc/resolv.conf
:
docker exec -it <容器名称或ID> cat /etc/resolv.conf
8. 查看网络驱动信息
docker info | grep -i "network"
输出示例:
Network: bridge host ipvlan macvlan null overlay
总结命令速查表
场景 | 命令 |
---|---|
列出所有网络 | docker network ls |
查看网络详情 | docker network inspect <网络名> |
查看容器网络配置 | docker inspect <容器名> |
查看容器端口映射 | docker port <容器名> |
进入容器检查网络 | docker exec -it <容器名> ip addr |
检查宿主机 Docker 接口 | ip addr show docker0 |
通过这些命令,您可以全面掌握 Docker 网络的状态、连接关系和配置细节。