docker 启用ipv4,默认只有ipv6
方法一
在服务器上禁用IPv6 使用vim打开/etc/default/grub在第6行中增加ipv6.disable=1 例如: 复制代码 GRUB_CMDLINE_LINUX="ipv6.disable=1 ..." 重新配置grub并重启服务器 复制代码 $ grub2-mkconfig -o /boot/grub2/grub.cfg $ reboot 等到服务器重启完成后,我们再次使用netstat查看tcp协议(也可以使用lsof -n -i TCP | grep docker)
方法二
Docker容器映射到宿主机后,查询端口连接只有tcp6没有tcp,通过ipv4地址连接时无法连接成功
处理方法1:
检查是否开启ipv4端口转发
sysctl net.ipv4.ip_forward
若指令返回结果为net.ipv4.ip_forward = 0,执行如下指令
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
以上方法是临时添加的转发,重启网卡或服务器后会丢失配置。
处理方法2:
修改/etc/sysctl.conf文件
添加或修改为
net.ipv4.ip_forward=1
加载配置
sysctl -p /etc/sysctl.conf
完成后通过netstat -ntlp | grep port 仍旧显示只有tcp6,但是此时通过ipv4地址是可以访问了。
方法三
vi /etc/docker/daemon.json { "ipv6": false } #docker run -p tcp6 sudo systemctl restart docker