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

 

 
 
 
posted @ 2023-12-27 09:24  咿呀哒喏  阅读(1389)  评论(0编辑  收藏  举报