2.1 基本命令 docker network
Docker中的网络允许容器彼此交互以及与外部网络交互。docker network
命令提供了创建、配置和管理网络的灵活功能,确保容器网络交互的隔离性和控制力。在这节讲座中,我们将详细讲解docker network
命令及其用于管理网络的方式。
主要的docker network
命令:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
创建网络:命令 docker network create
docker network create
命令用于创建新网络。你可以使用不同的驱动程序创建网络,例如bridge
, host
, overlay
和macvlan
。
使用bridge
驱动程序创建网络的示例
docker network create --driver bridge my_bridge_network
使用overlay
驱动程序创建网络的示例
docker network create --driver overlay my_overlay_network
使用macvlan
驱动程序创建网络的示例
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 网络操作命令
1. 查看可用网络:命令 docker network ls
命令 docker network ls
会显示 Docker 中已创建的所有网络列表。
docker network ls
命令的输出格式如下:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. 查看网络信息:命令 docker network inspect
命令 docker network inspect
用于获取特定网络的详细信息,包括已连接的容器、子网和网关设置。
使用示例:
docker network inspect my_bridge_network
命令的输出内容将以 JSON 格式显示网络信息:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. 将容器连接到网络:命令 docker network connect
命令 docker network connect
用于将一个已运行的容器连接到现有的网络。
使用示例:
docker network connect my_bridge_network my_container
4. 断开容器与网络的连接:命令 docker network disconnect
命令 docker network disconnect
用于断开容器与网络的连接。
使用示例:
docker network disconnect my_bridge_network my_container
5. 删除网络:命令 docker network rm
命令 docker network rm
用于删除网络。注意,只有在断开所有已连接的容器后才能删除网络。
使用示例:
docker network rm my_bridge_network
2.3 docker network
命令示例
有关docker network
命令的使用示例
示例 1: 创建和使用bridge
网络
创建网络:
docker network create --driver bridge my_bridge_network
运行容器并连接到网络:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
检查网络:
docker network inspect my_bridge_network
docker network inspect
命令的输出会包含JSON格式的详细网络信息。为了让输出更易于阅读,可以使用jq
工具:
docker network inspect my_bridge_network | jq
这非常方便用于过滤和结构化查看网络数据,比如已连接的容器、它们的IP地址和子网设置。
示例 2: 连接和断开容器
运行容器:
docker run -d --name my_container nginx
将容器连接到网络:
docker network connect my_bridge_network my_container
断开容器与网络的连接:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION