在 Docker 中,查看所有網路的位址(網段/子網範圍)

以下是幾種常用的操作方式:
1. 一鍵列出所有網路及其子網 (最推薦)
使用以下組合命令,可以快速以列表形式查看所有網路名稱及其對應的子網(Subnet):
bash
docker network inspect $(docker network ls -q) --format '{{.Name}}: {{range .IPAM.Config}}{{.Subnet}}{{end}}'
請謹慎使用程式碼。

  • 原理docker network ls -q 先取出所有網路 ID,再透過 --format 模板僅輸出網路名稱與子網配置。
2. 查看特定網路的詳細位址
如果你只想查看某個特定網路(例如 bridge 或自定義網路)的網關和子網,可以使用:
docker network inspect <網路名稱或ID>
請謹慎使用程式碼。
在輸出結果的 IPAM -> Config 區塊中,你可以找到以下資訊:
  • Subnet: 該網路的子網範圍(例如 172.17.0.0/16)。
  • Gateway: 該網路的網關地址。
3. 查看所有容器及其分配到的 IP
如果你想知道目前有哪些容器正在運行,以及它們具體分配到了什麼 IP 地址,可以使用:
docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }}: {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
請謹慎使用程式碼。

這會列出每個容器的名稱及其在所屬網路中獲得的實例 IP。
總結常用命令表
目的 命令
列出所有網路 ID/名稱 docker network ls
查看所有網路的子網段 docker network inspect $(docker network ls -q) --format '{{.Name}}: {{range .IPAM.Config}}{{.Subnet}}{{end}}'
查看特定網路詳細細節 docker network inspect <網路名稱>

 

將容器加入 Docker 網路主要有兩種情況:容器已經在運行準備啟動新容器
1. 將「已在運行」的容器加入網路
如果容器已經啟動,你可以使用 docker network connect 命令,這不會停止或重啟容器。
docker network connect <網路名稱> <容器名稱或ID>
請謹慎使用程式碼。

  • 範例:將名為 my_db 的容器加入到 frontend_net 網路中。
    bash
    docker network connect frontend_net my_db
    
    請謹慎使用程式碼。

  • 指定 IP:你也可以在加入時手動指定 IP 地址:
    bash
    docker network connect --ip 172.20.0.10 frontend_net my_db
    
    請謹慎使用程式碼

2. 在「啟動時」將容器加入網路
當你使用 docker run 創建新容器時,可以使用 --network 參數指定它所屬的網路。
bash
docker run -d --name <容器名稱> --network <網路名稱> <鏡像名稱>
請謹慎使用程式碼。

  • 注意:如果不指定,容器預設會加入到 bridge 網路。
3. 使用 Docker Compose 加入現有網路
如果你使用 docker-compose.yml 管理容器,並希望它加入一個已經存在的網路,需在文件中將該網路標記為 external: true
yaml
services:
  web:
    image: nginx
    networks:
      - my_existing_net

networks:
  my_existing_net:
    external: true
請謹慎使用程式碼。

關鍵提示:
  • 多網路連接:一個容器可以同時屬於多個不同的網路。
  • 互通性:加入同一個自定義網路(User-defined network)的容器,可以直接通過「容器名稱」互相訪問,而不需要記住動態變化的 IP 地址。
  • 退出網路:若要將容器移出某個網路,使用 docker network disconnect <網路名稱> <容器名稱>
    Docker Docs

版权声明:
作者:yxbinghe
链接:https://www.zhanhao.ch/?p=633
来源:ice.99
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>