背景
默認(rèn)情況下啟動docker之后會自己創(chuàng)建一個名為 docker0
的網(wǎng)橋。但是里面的ip配置可能不是自己期望或是與某些公司內(nèi)部的網(wǎng)關(guān)沖突了,造成不必要的麻煩色鸳。
而我遇到的問題剛好就是異地辦公司的網(wǎng)關(guān)跟默認(rèn)docker0
網(wǎng)關(guān)剛好一至,造成移動同事無法訪問該服務(wù)器地址。
如何解決屋匕?
修改默認(rèn)的配置文件 /etc/docker/daemon.json
對Docker進(jìn)行配置。
如果服務(wù)已經(jīng)開始需要先停止服務(wù)借杰,并刪除舊的網(wǎng)絡(luò)过吻。
$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
修改 /etc/docker/daemon.json
以下代碼是我的范例
{
"bip": "192.188.0.1/16",
"registry-mirrors": [
"https://a73cc22x.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"http://c0d14726.m.daocloud.io",
"https://registry.aliyuncs.com"
]
}
重啟Doker服務(wù):
$ sudo service docker start
查看配置是否成功
$ ifconfig docker0
docker0 Link encap:Ethernet HWaddr 02:42:38:60:08:25
inet addr:192.188.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
另外一種操作
類似的也需要刪除舊的docker0如果已經(jīng)啟動docker服務(wù)先關(guān)閉了再刪除。
手動創(chuàng)建一個新的網(wǎng)橋名稱為 bridge0
$ sudo brctl addbr bridge0
$ sudo ip addr add 192.188.0.1/16 dev bridge0
$ sudo ip link set dev bridge0 up
查看確認(rèn)網(wǎng)橋創(chuàng)建并啟動蔗衡。
$ ip addr show bridge0
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
inet 192.188.0.1/16 scope global bridge0
valid_lft forever preferred_lft forever
在 Docker 配置文件/etc/docker/daemon.json
中添加如下內(nèi)容纤虽,即可將 Docker 默認(rèn)橋接到 創(chuàng)建的網(wǎng)橋上。
{
"bridge": "bridge0",
}
再次啟動docker服務(wù)
$ sudo service docker start
Trick
如何查看電腦的路由信息绞惦,確定自己到底哪個網(wǎng)關(guān)沖突了逼纸?
執(zhí)行以下命令:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.16.3.1 0.0.0.0 UG 0 0 0 enp0s31f6
192.16.3.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s31f6
192.38.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-8658c245b375
192.128.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-18e510164f90
192.133.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-d6fb5b3db5a7
192.188.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
總結(jié)
通過以上的操作應(yīng)該能幫你解決需要的問題。