『只解决问题,不懂原理系列』
问题复现:
系统中禁用了ipv6,导致docker run创建容器时无法正确映射ipv6地址
1.dockerd启动报错:
failed to read ipv6 net.ipv6.conf.<bridge>.accept_ra bridge=docker0 syspath=/proc/sys/net/ipv6/conf/docker0/accept_ra
2.docker run 增加 -p参数映射地址报错:
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