一. 问题形容
在公司虚拟机内开了个 docker 容器,发现公司内网的局部 IP 地址是无法访问的。
二. 解决步骤
1. 狐疑公司网络限度
运维查问发现有个 IP 段被禁止拜访了,如果要拜访须要独自申请。
2. 狐疑本机操作问题
在不申请的状况下做了第二个操作,发现本机 docker 的 IP 地址段与该无法访问 IP 段比拟类似。
#ifconfig docker0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
ether 02:42:d4:d3:b9:28 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
批改 docker 的 IP 地址:
# vi /etc/docker/daemon.json
{"bip": "192.168.100.1/24"}
留神,此时 bip 肯定是不能以 0 结尾,否则在重启 docker 服务时,会报错找不到网络。
操作删除原有的网络: ip link del docker0
如需长期批改 IP 网段:docker --bip="10.1.42.1/16" -d
如果最初认为是 0 的话,则会报如下谬误:
INFO[2020-08-21T06:33:33.159447512Z] Loading containers: start.
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: failed to allocate gateway (172.30.0.0): Address already in use