解决在linux中禁用ipv6导致Docker创建容器时无法正确映射ipv6地址后启动失败的问题

『只解决问题,不懂原理系列』

问题复现:

系统中禁用了ipv6,导致docker run创建容器时无法正确映射ipv6地址

1.dockerd启动报错:

failed to read ipv6 net.ipv6.conf..accept_ra bridge=docker0 syspath=/proc/sys/net/ipv6/conf/docker0/accept_ra

2.docker run 增加 -p参数映射地址报错:

解决在linux中禁用ipv6导致Docker创建容器时无法正确映射ipv6地址后启动失败的问题_第1张图片

Failed to allocate and map port: Error starting userland proxy: listen tcp6 [::]:6379

 

解决思路:

宿主机缺少ipv6目录及文件,重新生成ipv6相关文件即可(同时可禁用ipv6)

 

解决方案:

1.启用ipv6配置:编辑/etc/default/grub文件(后面可通过sysctl.conf禁用ipv6,这里是为了创建ipv6相关目录信息,1=禁用、0=启用)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=0"

GRUB_CMDLINE_LINUX="ipv6.disable=0"

 

2.禁用ipv6配置信息:编辑/etc/sysctl.conf,禁用ipv6(1=禁用、0=启用)

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1
 

3.重启

reboot

 

部分内容引用:https://blog.csdn.net/weixin_39628498/article/details/111799362

你可能感兴趣的:(docker,docker,ipv6,容器)