遇到的问题
当我想创建一个新的容器bb3,其连接在新建的bridge2网络上。在命令执行时,我收到了一个警告信息:“WARNING: IPv4 forwarding is disabled. Networking will not work.” 这个警告意味着 IPv4 转发在宿主机上被禁用了,这可能会导致容器之间的网络通信无法正常工作。
[root@master ~]# docker run -d --name bb3 --network bridge2 centos /bin/sh -c "while true; do sleep 3600; done"
WARNING: IPv4 forwarding is disabled. Networking will not work.
dd16374e698349694afdf2f31243fff6440f67874529a49f0fb58fbdb9d79f40
分析及解决办法
1、检查 IPv4 转发状态
[root@master ~]# cat /proc/sys/net/ipv4/ip_forward
0
如果输出为 0,那么 IPv4 转发是禁用的;如果输出为 1,则表示已经启用了。
2、启用IPv4 转发
临时启用 IPv4 转发
[root@master ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
永久启用 IPv4 转发
[root@master ~]# vi /etc/sysctl.conf
#添加
net.ipv4.ip_forward = 1
应用更改:
[root@master ~]# sysctl -p
net.ipv4.ip_forward = 1
修改了 IPv4 转发设置之后,你可能需要重启 Docker 服务以确保更改生效:
[root@master ~]# systemctl restart docker
再次检查IPv4转发状态:
[root@master ~]# cat /proc/sys/net/ipv4/ip_forward
1
删除刚创建的容器,再次尝试创建:
[root@master ~]# docker rm -f bb3
bb3
[root@master ~]# docker run -d --name bb3 --network bridge2 centos /bin/sh -c "while true; do sleep 3600; done"
935404d3ea4b45d1c42d401fa1f9499d0268b7f2392c30dec1955dda49191909
至此,IPv4转发禁用问题解决。