文章目錄
修改 Windows container 的預設 IP
之前文章 docker 無法連線至特定網段 (172.17.x.x) 分享了 docker 的 linux container bridge 會將特定 IP (172.17..) 的 request 導向 container 內部而造成無法存取特定 IP (172.17..) 問題,也介紹如何修改預設分配 IP 規則避免出現 172.17.. 的 request 無效
經過 linux container 的折騰,可以預想到 windows container 應該也會有相同問題,就讓我們來看看如何修改 Windows container 分配 IP 的規則吧
確認使用的 IP 配發規則
Windows
PowerShell 語法:
Get-NetNAT
Linux
docker network inspect bridge
修改 Windows container 配合規則
linux container 的修改方式請參考 docker 無法連線至特定網段 (172.17.x.x)
停止 docker service
Stop-Service docker
刪除所有 container 網路設定
Get-ContainerNetwork | Remove-ContainerNetwork -force
刪除
NAT
(vSwitch 仍然保留)Get-NetNat | Remove-NetNat
建立新的 container 網路設定
New-ContainerNetwork –name yowkonat –Mode NAT –subnetprefix 192.168.1.0/24
重新啟動 docker service
Start-Service docker
實際效果
建立新的 container 後,已成功使用前面指定的
192.168.1.*
ip
心得
雖然操作只有短短五個步驟,但為了確認正確的指令及步驟,至少重建了 docker 環境不下三十次,花了整整一天的時間呀,主因是一周前我才使用過別的方法達成一樣目的,但才過一周同樣的方法卻無法使用,讓我開始懷疑之前成功是不是只是一場誤會
之前使用的方法是在 windows 環境下,透過修改 C:\ProgramData\Docker\config\daemon.json
就可以讓 windows container 使用自定 ip 前綴,但這兩天撰文時發現,windows 下的 docker config 根本不支援 bip
,使用 fixed-cidr
也無效。難道是改版太快嗎? 或是根本是我記錯 @@”
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-08
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。