手把手教你实现给Docker开启IPv6网络支持

 更新时间:2023年08月16日 10:09:46   作者:Docker中文社区  
这篇文章主要为大家介绍了Docker开启IPv6网络支持实现方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

Docker 默认是不开启 IPv6 支持的,但是我们某些业务往往又需要 IPv6 的支持,特别是 IPv6 普及大势所趋,本文主要介绍的是如何开启 Docker 桥接网络 IPv6 支持,这篇文章具体操作仅供参考,建议以官方文档为准。

本文最重要的先决条件是主机商已经分配给你一个公网 IPv6 地址段,我们可以通过查看主机控制面板中信息、询问主机供应商或者直接SSH登录主机使用命令ip -f inet6 addr show eth0获取。命令方式获取的 ipv6 地址输出如下:

6: eth0:  mtu 9000 
    inet6 2607:f0d0:1002:51::4/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::230:48ff:fe33:bc33/64 scope link 
       valid_lft forever preferred_lft forever

其中inet6 2607:f0d0:1002:51::4/64 scope global这行指示的IPv6地址是我们需要的目标地址,注意我们这里选取的是公网IP,也就是后面scope global指示的,大家注意到后续还有一个fe80 开头的 IPv6 地址,这个后面没有 global,也就是通常意义内网 IPv6,本文不使用,当然读者可以根据实际需要选择内网 IPv6 继续参照下面介绍的步骤完成操作。

1、IPv6 地址段划分

Docker 可以配置多个虚拟网络,对于 IPv4 来说通过形如 172.17.0.1/16172.18.0.1/16172.19.0.1/16 这样内网私有IP地址段配置多个 IPv4 虚拟网段,那么同样的道理 IPv6 也建议划分多个段,如果手动划分不便,可以通过 IPv6 Subnetting Calculator自动划分

如下图所示:

比如刚才的 IPv6 地址划分为 4 个网段如下:

2607:f0d0:1002:51::/66
2607:f0d0:1002:51:4000::/66
2607:f0d0:1002:51:8000::/66
2607:f0d0:1002:51:c000::/66

2、配置默认 Docker IPv6

编辑 Docker 配置文件/etc/docker/daemon.json,如果该文件不存在,请手动建立。配置文件内容如下,如果你已有的配置文件缺少相应的配置项,添加上即可,没有必要完全覆盖内容。

{
  "experimental": true,
  "ipv6": true,
  "ip6tables": true,
  "fixed-cidr-v6": "2607:f0d0:1002:51::/66"
}

这里ip6tables是指由 Docker 自动配置 IPv6 的防火墙规则,如果你希望自己手动配置,请改为 false 或者移除此项,否则容器将无法连接 IPv6 网络;fixed-cidr-v6 则是我们划分的子网段的第一个,这里仅作示例请读者根据实际情况修改。

完成配置后请使用systemctl restart docker重启docker服务生效。完成此步后 Docker 算是完成对于 IPv6 的支持了。

3、配置 Docker Compose 的 IPv6 支持(可选)

这个主要是我编排容器时用的比较多,这里也记录一下作为一个备忘吧。

Docker Compose 的配置文件内容关于 IPv6 部分重点是网络节配置,如果另外配置网络的话,必须选择与默认daemon.json不同的 IPv6 子网段,例如:

networks:
  example:
    enable_ipv6: true
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "true"
    ipam:
      config:
       - subnet: 172.23.0.0/16
       - subnet: "2607:f0d0:1002:51:4000::/66"
         gateway:2607:f0d0:1002:51:4000::1

这里example网络我们通过配置开启IPv6支持,其中网络段配置IPv4是172.23.0.0/16,IPv6选用余下的第二个网段2607:f0d0:1002:51:4000::/66注意这里不能和daemon.json配置的 IPv6 网段一样。这里的 IP 配置同样是一个示例,读者请根据实际情况进行修改。

参考Enable IPv6 support

以上就是手把手教你给Docker开启IPv6网络支持的详细内容,更多关于Docker开启IPv6网络支持的资料请关注脚本之家其它相关文章!

相关文章

  • Docker删除某个镜像的实现方法

    Docker删除某个镜像的实现方法

    在使用 Docker 时,经常需要删除不再需要的镜像、容器和卷,以释放存储空间,本文主要介绍了Docker删除某个镜像的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • docker 搭建hadoop以及hbase集群详解

    docker 搭建hadoop以及hbase集群详解

    本篇文章主要介绍了docker 搭建hadoop以及hbase集群详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • docker 打包本地镜像,并到其他机器进行恢复操作

    docker 打包本地镜像,并到其他机器进行恢复操作

    这篇文章主要介绍了docker 打包本地镜像,并到其他机器进行恢复操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式

    Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式

    这篇文章主要介绍了Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MacOS Docker 安装的实现步骤

    MacOS Docker 安装的实现步骤

    本文主要介绍了MacOS Docker 安装的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Docker部署springboot项目实例解析

    Docker部署springboot项目实例解析

    这篇文章主要介绍了docker部署springboot项目实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • docker安装后导致的网络问题及解决

    docker安装后导致的网络问题及解决

    这篇文章主要介绍了docker安装后导致的网络问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker部署.NET6项目的实现步骤

    Docker部署.NET6项目的实现步骤

    Docker是现在比较流行的开源容器引擎,有了它让我们部署和维护系统更加方便,本文主要介绍了Docker部署.NET6项目,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 群晖NAS利用Docker容器搭建KMS激活服务器实现激活windows系统和office(操作步骤)

    群晖NAS利用Docker容器搭建KMS激活服务器实现激活windows系统和office(操作步骤)

    本文跟大家分享一下如何利用群晖NAS的Docker容器套件搭建KMS服务器,并演示如何利用我们自己的KMS服务器激活Windows操作系统与Microsoft Office,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • 解决docker搭建gitlab时容器不停重启的问题

    解决docker搭建gitlab时容器不停重启的问题

    这篇文章主要介绍了docker搭建gitlab时容器不停重启的问题,当用docker log 查看日志时,发现问题是在于配置文件没有权限创建的问题,本文给大家分享解决方案,感兴趣的朋友一起看看吧
    2022-05-05

最新评论