welcom ! Handel home

2025年4月13日 星期日

build_network_link.sh 建立docker netwoek 腳本說明

 

🔧 原始腳本

sh
sudo docker network create --driver=bridge --subnet=172.18.0.0/24 --gateway=172.18.0.1 $1 sudo docker network ls sudo docker network inspect $1

🔍 各行說明

第 1 行:建立一個自訂 Docker 網路

sh
sudo docker network create \ --driver=bridge \ --subnet=172.18.0.0/24 \ --gateway=172.18.0.1 \ $1
參數說明
docker network create建立新的 Docker 網路
--driver=bridge使用橋接網路(Bridge mode)
--subnet=172.18.0.0/24設定網路子網(CIDR 格式)
--gateway=172.18.0.1指定這個網路的預設閘道 IP
$1使用者從命令列傳入的網路名稱變數,例如 my_ros_net

範例用法

bash
sh create_net.sh my_ros_net

第 2 行:列出目前所有 Docker 網路

sh
sudo docker network ls

📋 顯示目前 Docker 網路清單,例如:

sql
NETWORK ID NAME DRIVER SCOPE 9d7c1ff36e64 bridge bridge local f8c9875df3bd host host local 2b18a98d97fd my_ros_net bridge local

第 3 行:檢查剛剛建立的網路詳細設定

sh
sudo docker network inspect $1

🔍 顯示該網路的完整設定資訊,例如:

json
[ { "Name": "my_ros_net", "Id": "2b18a98d97fd...", "Driver": "bridge", "IPAM": { "Config": [ { "Subnet": "172.18.0.0/24", "Gateway": "172.18.0.1" } ] }, "Containers": {} } ]

🧠 用途

這段 Shell Script 常見應用場景:

  • 為多個 Docker 容器(如 ROS Master、ROS Slave、Gazebo 等)建立共用的虛擬網路

  • 避免使用 --net=host提高安全性與可控性

  • 自訂 IP 範圍,便於在 Docker 容器間 穩定設定 ROS_MASTER_URI / GAZEBO_MASTER_URI


✅ 總結

功能說明
create建立一個自訂 bridge 網路(可指定 IP 範圍)
network ls確認是否建立成功
network inspect查詳細設定(IP、subnet、容器列表等)

沒有留言: