Docker容器支持IPv6的方法

2023-05-16

1.设置Docker Engine支持IPv6

1) 启动Docker Engine时即开启对IPv6的支持

默认启动时Docker Engine只支持IPv4。

启动Docker Engine时,指定--ipv6选项即可支持IPv6。

2) 对于已经启动的Docker Engine开启对IPv6的支持

配置/etc/docker/daemon.json文件如下。

{
  "ipv6": true,
  "fixed-cidr-v6": "fd00:daad:beee::/48"
}

说明:Docker Engine支持IPv6后,docker0将拥有IPv6的link-local地址fe80::1。但要使得docker0拥有IPv6的global地址,还需要设置--fixed-cidr-v6,以指定Docker容器实例可用的IPv6子网。

执行systemctl reload docker重载Docker Engine的配置文件,Docker Engine将会添加几条新的路由规则到iptables。以上述配置文件为例,Docker Engine将会执行如下等价操作:

$ ip -6 route add fd00:dead:beef::/48 dev docker0
$ sysctl net.ipv6.conf.default.forwarding=1
$ sysctl net.ipv6.conf.all.forwarding=1

如果Docker宿主机的网卡(例如eth0)是通过路由广播获取Docker Engine的IPv6配置参数,则上述配置文件的生效将引起Docker Engine将会执行如下等价操作:

$ ip -6 route add fd00:dead:beef::/48 dev docker0
$ sysctl net.ipv6.conf.default.forwarding=1
$ sysctl net.ipv6.conf.all.forwarding=1
$ sysctl net.ipv6.conf.eth0.accept_ra=2

2 创建Docker网络支持IPv6

事实上,Docker Engine支持IPv6后,Docker Engine默认的bridge网络就支持IPv6,直接使用bridge网络即可(默认即使用bridge网络)。

如果要使用定制网络,则创建网络时docker network create带--ipv6选项,示例如下:

docker network create -d bridge --ipv6 --subnet "fd00:daad:beee:1::/64" --gateway="fd00:daad:beee::1" --subnet=172.18.0.0/16 --gateway=172.18.0.1 myNet

3 创建容器实例支持IPv6

Docker Engine支持IPv6后,创建容器时docker run带--ip6选项即可。

注意,如果docker run命令带--ip或--ip6选项,则其网络不能是默认的bridge网络,否则会抛出如下异常:

user specified IP address is supported on user defined networks only.

必须为创建的容器采用定制网络,才能够通过--ip或--ip6选项指定容器实例的IP。

首先要保证定制网络(如myNet)支持IPv6,然后创建容器时docker run带--ip6选项和--network=myNet即可。

docker run -itd -P --ip=172.18.0.101 --ip6="fd00:daad:beee:1::101" --network=myNet --name=my101 centos:7

 

参考链接:

https://docs.docker.com/config/daemon/ipv6/

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/ipv6/#how-ipv6-works-on-docker

https://github.com/moby/moby/issues/29443#issuecomment-495808871

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker容器支持IPv6的方法 的相关文章

随机推荐

  • IT项目经理如何正确做好项目实施

    本文摘自 光环国际 中国项目管理PMP培训上市企业 对自己的能力有清晰认识 xff1a 局限 你需要客观的评价自己的长处和短处 xff0c 并且着手缩小自己的差距 做软件的人常常被认为缺乏出色的交际能力 你需要加强你的人际处理能力 xff0
  • 解决Centos/Mysqld 重启或关机时间慢问题

    项目场景 xff1a 提示 xff1a centos 8测试环境中 xff0c 将通过二进制安装的服务添加到systemd服务管理中 xff0c 并对其进行测试 xff0c 看是否能满足线上需求 xff0c 即开机自动启动 由于添加到sys
  • You don‘t have enough free space in /var/cache/apt/archives

    在执行 sudo apt install 来安装一些包时候遇到过这个问题 xff0c 网上查了很多资料 xff0c 很多简单粗暴的解决方案如下 xff1a span class token function sudo span apt au
  • mysql创建超级用户,更新用户权限

    insert into user Host User Password Select priv Insert priv Update priv Delete priv Create priv Drop priv Reload priv Sh
  • VNC端口被占用:a vnc server is already running as

    其实这些端口可能是以前的一些用户占用的 当他们离开这太服务器的时候并没有释放资源 后来在网上查找 xff0c 才找到了杀死这些进程的方法 其实每个端口都是vncserver的一个进程 1 所以我们使用 ps ef grep vnc 就能查到
  • 【图像处理】C++实现模板匹配

    预先判断 3 3十字中心 区域是否相似 xff0c 如果相似 xff0c 则再匹配判断 这样可以减少判断次数 前提 xff1a 模板大于9 9 BOOL Judgement BYTE pTempDataBuf BYTE pTemplateB
  • CPython的命令行与python文件的执行

    在Windows系统中 xff0c 下载并安装了Python解析器后 xff0c 就可以运行Python文件了 可以使用任何编辑器 xff0c 编写并保存Python文件 Python运行时提供了多种执行Python文件的方法 1 编写并保
  • Java运行时的shutdown hook

    Hook作为一种回调方式 xff0c 广泛应用于软件中 从Java 1 3开始 xff0c JVM的Runtime也提供了hook的机制 xff0c 即shutdown hook 提供给出shutdown hook xff0c 在退出JVM
  • Apache Maven Resources Plugin插件详解

    Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件 xff0c 能够将Maven项目中的各种资源文件复制到指定的输出目录中 1 在Maven项目中的资源可以分为两类 main资源 xf
  • TestNG测试的并发执行详解

    TestNG在执行测试时 xff0c 默认suitethreadpoolsize 61 1 xff0c randomizesuites 61 false xff0c 即非并发顺序执行测试 但是TestNG提供了多种方式 xff0c 以支持测
  • Maven的pom.xml文件结构之Build配置build

    在Maven的pom xml文件中 xff0c Build相关配置包含两个部分 xff0c 一个是 lt build gt xff0c 另一个是 lt reporting gt xff0c 这里我们只介绍 lt build gt 1 在Ma
  • Docker容器的重启策略及docker run的--restart选项详解

    1 Docker容器的重启策略 Docker容器的重启策略是面向生产环境的一个启动策略 xff0c 在开发过程中可以忽略该策略 Docker容器的重启都是由Docker守护进程完成的 xff0c 因此与守护进程息息相关 Docker容器的重
  • docker run的--rm选项详解

    在Docker容器退出时 xff0c 默认容器内部的文件系统仍然被保留 xff0c 以方便调试并保留用户数据 但是 xff0c 对于foreground容器 xff0c 由于其只是在开发调试过程中短期运行 xff0c 其用户数据并无保留的必
  • Spring Boot的Maven插件Spring Boot Maven plugin详解

    Spring Boot的Maven插件 xff08 Spring Boot Maven plugin xff09 能够以Maven的方式为应用提供Spring Boot的支持 xff0c 即为Spring Boot应用提供了执行Maven操
  • Django项目与Django应用的关系及django.apps模块

    1 Django项目与Django应用 Django项目通常是使用django admin工具创建的项目结构 xff0c 执行如下命令创建Django项目myproject xff1a django admin startproject m
  • Gradle-7.0.3 build.gradle字段有改变

    如果你使用最新的 Gradle 7 0 3 build gradle文件里 defaultConfig 作用域内个别字段有变化 defaultConfig span class token punctuation span applicat
  • Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean异常解析

    Spring Boot升级到2 0 1 xff0c 再次按照其官网的Quick Start做了一下上手练习 xff0c Maven构建成功 xff0c 但是启动应用总是报错如下 xff1a Unable to start ServletWe
  • Spring Boot 2.0中嵌入式Web容器(如Tomcat)对HTTP2的支持详解

    Spring Boot应用往往作为服务发布 xff0c 这里对HTTP2的支持 xff0c 主要是对通过嵌入式Web容器支持HTTP2 1 在最新的Spring Boot 2 0 3 RELEASE中 xff0c 集成的三种嵌入式Web容器
  • Spring Cloud OpenFeign详解

    作为Spring Cloud的子项目之一 xff0c Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式 xff0c 为微服务架构下服务之间的调用提供了解决方案 首先 xff0c 利用
  • Docker容器支持IPv6的方法

    1 设置Docker Engine支持IPv6 1 启动Docker Engine时即开启对IPv6的支持 默认启动时Docker Engine只支持IPv4 启动Docker Engine时 xff0c 指定 ipv6选项即可支持IPv6