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

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

其中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 个网段如下:

2、配置默认 Docker IPv6

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

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

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

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

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

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

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

4、参考资料

Enable IPv6 support

手把手教你如何给 Docker 开启 IPv6 网络支持的更多相关文章

  1. 个人宽带如何开启IPv6网络访问

    IPv6是大势所趋,就在前段时间湖南联通发布公告,对家庭宽带提供 IPv6 地址,不再提供 IPv4地址,那本文就介绍 个人宽带如何开启 IPv6网络访问. 湖南联通停止向普通家庭宽带用户提供公网 I ...

  2. 手把手教你构建 Kubernetes 1.8 + Flannel 网络(一)

    一.环境说明 操作系统:CentOS7 Kubernetes版本:v1.8.4 Docker版本:v17.06-ce Flannel 版本: flannel-v0.9.1 二.Ntp 服务器配置   ...

  3. 手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)

    前言 什么是APM?全称:Application Performance Management 可以参考这里: 现代APM体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体 ...

  4. 手把手教你docker安装宝塔面板

    手把手教你docker安装宝塔面板(针对小白提一下:需要先安装docker,安装docker的教程请自行百度,非常简单的),docker安装宝塔面板教程如下: 一.拉取centos镜像(当然这里拉取别 ...

  5. 手把手教你 Docker Compose的安装和使用

    一.Docker Compose是什么? Docker Compose是一个工具,用于定义和运行多容器应用程序的工具: Docker Compose通过yml文件定义多容器的docker应用: Doc ...

  6. 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群

    手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...

  7. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  8. 周一干货~手把手教你安装 Visual Studio 安卓模拟器

    干货~手把手教你安装 Visual Studio 安卓模拟器 转 http://mini.eastday.com/mobile/171107134734194.html# 今天软妹为大家带来一篇来自M ...

  9. 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  10. 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境

    庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...

随机推荐

  1. Java中使用Callable和FutureTask创建多线程的基本用法

    我们先定义一个Callable任务MyCallableTask: 步骤1:创建Callable实现类,并实现call()接口 package cn.cetc;//包名可自定义 import java. ...

  2. MySQL-扩展

    1.行转列 源数据: 目标数据: 数据准备 -- 建表插入数据 drop table if exists time_temp; create table if not exists time_temp ...

  3. 2025 最佳免费商用文本转语音模型: Kokoro TTS

    在文本转语音(TTS)技术领域,一项突破性的进展引起了广泛关注--Kokoro TTS 模型凭借其卓越性能和完全免费的商用许可,成为目前最出色的 TTS 解决方案之一.基于广受欢迎的开源框架 Styl ...

  4. VulNyx - System

    扫描发现 2121是ftp端口 8000 http的一个端口 6379redis端口 爆破redis的密码 爆破出来时bonjour 猜测ftp的密码和redis的密码是一样的 尝试用密码去爆出ftp ...

  5. VulNyx - Mail 靶机

    扫描靶机 发现22 和 80端口 访问80端口 发现id=1 和2 时都会有回显 dirsearch -u http://http://192.168.200.39 访问这个1 和 2的路径 发现竟然 ...

  6. DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)

    大家好,我是汤师爷~ 最近,DeepSeek这款AI工具爆火国内外. 虽然许多人都开始尝试使用它,但有人吐槽说,没想象中那么牛. 其实问题不在工具,很多人的使用姿势就搞错了,用大炮打蚊子,白白浪费De ...

  7. 亮相CCF中国软件大会,天翼云助力千行百业搭上“数字快车”

    中国软件领域规模最大.影响最广的学术会议--CCF中国软件大会(ChinaSoft 2023)在上海国际会议中心开幕.CCF理事长.大会执行委员会荣誉zhu席.中国科学院院士梅宏,上海市经济和信息化委 ...

  8. linux mint下安装截图工具

    在linux下尝试了多款截图工具,综合下来,觉得shutter是最好用的,推荐大家使用. Shutter 是一个强大的截图工具,强大的功能集成到一个直观的简洁界面,应用程序自带多个区域截图(如全屏,选 ...

  9. git pull报错:Pulling without specifying how to reconcile divergent branches is discouraged.

    一.保存内容如下 二.翻译 三.设置为默认即可:git config pull.rebase false

  10. FLink自定义Kafka Source,处理后转发给下一个kafka topic

    一.依赖配置 pom文件:https://www.cnblogs.com/robots2/p/16048648.html kafka单机版安装:https://www.cnblogs.com/robo ...