1.背景
Docker 是一種廣泛使用的容器化平臺(tái),它允許開發(fā)者在不同環(huán)境中輕松地部署和管理應(yīng)用程序。默認(rèn)情況下,Docker 會(huì)為容器分配一個(gè)默認(rèn)的網(wǎng)段(通常是 172.17.0.0/16),以便容器之間可以相互通信。然而,在某些情況下,Docker 的默認(rèn)網(wǎng)段可能會(huì)與主機(jī)或其他網(wǎng)絡(luò)的網(wǎng)段沖突,這會(huì)導(dǎo)致網(wǎng)絡(luò)連接問題和其他網(wǎng)絡(luò)相關(guān)的錯(cuò)誤。
例如,如果主機(jī)網(wǎng)絡(luò)或公司內(nèi)部網(wǎng)絡(luò)使用了與 Docker 默認(rèn)網(wǎng)段相同的 IP 地址范圍,那么在主機(jī)上運(yùn)行的 Docker 容器可能無法正確訪問外部網(wǎng)絡(luò)資源,或者可能會(huì)出現(xiàn) IP 地址沖突的問題。這種情況在使用 VPN 連接到公司內(nèi)部網(wǎng)絡(luò)時(shí)尤其常見。
2.解決方案
# 查看網(wǎng)絡(luò)
ip addr

image.png
更改Docker的默認(rèn)網(wǎng)段
1.編輯docker Daemon配置文件
在主機(jī)上編輯Docker的配置文件‘daemon.json’ ,該文件通常位于 /etc/docker/daemon.json。加入以下代碼:
{
"default-address-pools":
[
{"base":"172.100.0.0/16","size":24}
]
}
其中上面的172.100.0.0/16是自定義的網(wǎng)段地址
2.刪除docker0
ip link delete docker0
3.重新啟動(dòng)docker
- 停止docker運(yùn)行
sudo systemctl stop docker
- 查看docker 狀態(tài)
sudo systemctl status docker
- 啟動(dòng)docker,可能要多等一會(huì)
sudo systemctl start docker
4.查看docker現(xiàn)有的IP網(wǎng)段
ip addr