2.1 基本指令 docker network
Docker中的網路允許container彼此互動,也能和外部網路對接。docker network
指令提供了靈活的創建、配置和管理網路的功能,確保container網路互動的隔離性和控制性。在這堂課程中,我們會詳細探討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
用於創建新的網路。你可以使用不同的drivers來創建網路,例如bridge
、host
、overlay
和macvlan
。
使用bridge
driver創建網路的範例
docker network create --driver bridge my_bridge_network
使用overlay
driver創建網路的範例
docker network create --driver overlay my_overlay_network
使用macvlan
driver創建網路的範例
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