docker默认IP地址冲突
一.问题描述
在公司虚拟机内开了个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