场景:在VMware中启动docker容器时,抛出WARNING: IPv4 forwarding is disabled. Networking will not work.
结果:容器内部无法访问外网,也无法访问物理机。
原因:Linux默认情况下禁止了IPv4转发,而VM的NAT模式下需要通过宿主机进行转发才能联通到外网
解决方案:在内核文件中启用IPv4转发。注意Centos7中内核文件不再是/etc/sysctl.conf,而是/usr/lib/sysctl.d/00-system.conf
# Centos7后内核文件的变更信息
[root@localhost ~]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
#追加配置
[root@localhost ~]# echo net.ipv4.ip_forward=1 >> /usr/lib/sysctl.d/00-system.conf
[root@localhost ~]# cat /usr/lib/sysctl.d/00-system.conf
...
net.ipv4.ip_forward=1