Docker ip Warning的问题所在

在使用docker的时候,发现根据ubuntu的基础镜像进行build,一直会报一个错:
[Warning] IPv4 forwarding is disabled. Networking will not work
通过google发现是/etc/sysctl.conf文件中关于ipv4的设置有问题,第一反应就是在dockerfile中加入修改ipv4属性的操作:
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf或者sysctl -w net.ipv4.ip_forward=1

但是修改之后再进行build还是会出现同样的问题。
最终发现网络问题始终是宿主机的sysctl配置有问题,这样导致docker在Build的时候出现相应的问题:

#docker info
WARNING: IPv4 forwarding is disabled  
WARNING: bridge-nf-call-iptables is disabled  
WARNING: bridge-nf-call-ip6tables is disabled  

在宿主机上:sysctl -w net.ipv4.ip_forward=1 然后sysctl -p
这时候你会发现docker info中关于IPv4Warning消失啦~
接下来,我们去解决bridge的这两个Warning:
sysctl net.bridge.bridge-nf-call-ip6tables=1
sysctl net.bridge.bridge-nf-call-iptables=1