解决 Docker 容器无法访问 ipv6 问题

212次阅读
没有评论

共计 816 个字符,预计需要花费 3 分钟才能阅读完成。

今天打开 docker 启动的 next-terminal 发现无法使用 ipv6 地址 ssh 到家里的机器,但是在宿主机却是可以的,猜测应该是 docker 导致的问题。

由于docker默认没有开启IPv6支持,在容器内部输入命令 curl -6 ip.sb 就会报错。

curl -6 ip.sb
curl: (7) Failed to connect to ip.sb port 80 after 1 ms: Could not connect to server

于是网上搜索了一番,发现只需要按照如下配置即可访问。

  • 修改docker配置文件

这种方式是让 docker 默认的 bridge 网络启用 ipv6。

修改 docker 配置文件 /etc/docker/daemon.json,添加如下内容:

{
    "experimental": true,
    "fixed-cidr-v6": "fd00:db8:1::/64",
    "ip6tables": true,
    "ipv6": true
}

需要重启 docker 才能生效。

systemctl restart docker
  • 添加自定义网络

由于 docker-compose 会自动创建桥接网络,但是自动创建的网络是没有 ipv6 的,所以需要自定义网络并进行如下配置。

docker-compose.yaml 文件中添加如下内容:

networks:
  default-network:
    name: default-network
    enable_ipv6: true
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: fd00:db8:1234::/64
        gateway: fd00:db8:1234::1

然后容器配置使用自定义网络:

services:
  next-terminal:
    image: dushixiang/next-terminal:v1.3.9
    container_name: next-terminal
    #省略其它...
    networks:
      - default-network
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2025-02-17发表,共计816字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2025 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock