1. 程式人生 > 實用技巧 >如何修改Docker的預設網段?

如何修改Docker的預設網段?

背景

公司的伺服器全部都是購買的阿里雲ECS主機,預設內網網段為172.16.0.0/12,測試服上的服務基本都是使用Docker部署的。
之前的同事在該機器上安裝的Docker全部都是預設配置,網段為172.17.0.0/24,在實際使用中會有訪問宿主機的需求,通過172.17.0.1來訪問,這樣就會與其他宿主機ip衝突,所以需要修改容器的預設網段。

解決方法

1、停止宿主機上的Docker服務

sudo systemctl stop docker

2、修改容器配置檔案/etc/docker/daemon.json

sudo cat /etc/docker/daemon.json
{
    "registry-mirrors": ["https://gbs4gco0.mirror.aliyuncs.com"],
    "bip": "10.50.0.1/16",
}

如以上程式碼中所述,配置檔案中的bip欄位即可設定宿主機的docker網段,配置為私網地址即可(192.168.0.0/10.0.0.0/172.0.0.0)

3、啟動Docker服務

sudo systemctl daemon-reload
sudo systemctl start docker

4、驗證docker-0網橋地址

sudo ifconfig
...
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.50.0.1  netmask 255.255.0.0  broadcast 10.50.255.255
        inet6 fe80::42:46ff:fe18:add5  prefixlen 64  scopeid 0x20<link>
        ether 02:42:46:18:ad:d5  txqueuelen 0  (Ethernet)
        RX packets 14697564  bytes 5943503139 (5.5 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15379709  bytes 6846099156 (6.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...

至此,Docker的預設網段就已經修改完畢,可以檢視之前的容器的ip有無修改

sudo docker container inspect alipne --format="{{.NetworkSettings.IPAdress}}"
10.50.0.2