怎样配置 Docker IPv6 ?
Docker IPv6 配置
Docker 0 默认不开启 IPv6 配置, 但是在某些场景我们又需要 IPv6 网络的支持, 特别是随着 IPv6 的普及,以后使用 IPv6 的场景会越来越多。
注解
本教程假设您的服务器拥有公网 IPv6 地址段, 并且 IPv6 地址段Docker 启用 IPv6 支持Docker 启用 IPv6 支持为:
1111:1111:1111:1111::/64
Docker 启用 IPv6 支持
首先编辑 /etc/docker/daemon.json
文件,把如下配置添加到配置文件中:
注解
如果
/etc/docker/daemon.json
文件不存在,手动创建即可。
{"ipv6": true,"fixed-cidr-v6": "1111:1111:1111:1111::/64
" }
重启 docker 服务 systemctl restart docker
。
宿主服务器配置
如果我们的 Docker 容器需要使用 IPv6 公网地址, 我们还需要配置宿主机器的 路由/转发 规则,允许宿主机 路由/转发 Docker 容器的 IPv6 流量。
注解
这里我们这里假设宿主机的默认 IPv6 网卡名称为
eth0
。
/etc/sysctl.conf
配置
我们需要宿主机允许转发 IPv6 流量 & 邻居发现消息:
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.default.proxy_ndp=1 # docker0 是 docker 默认的网桥 (bridge) net.ipv6.conf.docker0.proxy_ndp=1 # eth0 是默认的网卡 net.ipv6.conf.eth0.proxy_ndp=1
使用 sysctl -f
重载系统配置。
ndppd 配置
因为 Linux IPv6 的 ndp 邻居发现配置仅允许单个 IP 配置(IPv6 /128
), 因此我们使用 ndppd
守护进程来自动转发邻居发现消息。
注解
理论上我们也可以手工一条一条的配置所有 IPv6 邻居发现消息转发规则。
apt install ndppd
/etc/ndppd.conf
写入如下配置:
route-ttl 30000 address-ttl 30000 proxyeth0
{router yestimeout 500autowire nokeepalive yesretries 3promiscuous nottl 30000rule1111:1111:1111:1111::/64
{staticautovia no} }
注解
ndppd 详细配置参见: https://github.com/DanielAdolfsson/ndppd/blob/master/ndppd.conf-dist
systemctl restart ndppd
docker-compose 启用 IPv6
docker-compose.yaml
可以使用类似如下的配置启用 IPv6 地址:
version: "2.4"networks:ipv6_network:enable_ipv6: truedriver: bridgeipam:driver: defaultconfig:- subnet: "172.16.238.0/24"- subnet: "1111:1111:1111:1111:1::/80
"
小技巧
subnet 中的 IPv6 地址不要直接使用
1111:1111:1111:1111::/64
, 否则可能会导致路由混乱(Docker 容器无法正常使用 IPv6 网络)。使用
1111:1111:1111:1111::/64
的任意子网段都可以。
警告
docker-compose
文件 必须使用 version: 2, version: 3 不支持enable_ipv6
配置 2 。如果您已有旧的容器在运行(网络配置发生了变化),则需要先销毁容器
docker-compose down
然后再重新创建docker-compose up
。
实现原理
Docker 启用 IPv6 功能的原理实际就是:
配置宿主机器启用 IPv6 路由/转发 功能
这是必须的,否则宿主机器不会 路由/转发 Docker 的 IPv6 流量。
Docker 底层网络实现就是在宿主机器创建网桥 (bridge 模式)
所以一切关于网桥配置的原理都可以应用到这里。
给宿主机配置正确的 路由/转发 规则
原文链接:Docker IPv6 配置 — 奇遇科技博客 2021 文档 (qiyutech.tech)https://blog.qiyutech.tech/202112/30_docker_ipv6/
怎样配置 Docker IPv6 ?相关推荐
- IDEA 配置 Docker
IDEADocker Docker安装 资源下载 链接: https://pan.baidu.com/s/1B6JbwZD5jM86vy8sryOusQ 提取码: 4p5t 资源包含 Docker的e ...
- 《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
本节书摘来自异步社区<Cisco IPv6网络实现技术(修订版)>一书中的第2章,第2.6节,作者[加]Régis Desmeules,更多章节内容可以访问云栖社区"异步社区&q ...
- docker omv 防火墙_OpenMediaVault(OMV)配置Docker
[TOC] OMV配置Docker docker属于omv拓展(omv-extras)插件,如果没有安装拓展包是搜索不到的,如果你还没有安装omv-extras的话,请先安装OMV安装omv-extr ...
- wsl2设置挂载_Windows下的Linux子系统安装,WSL 2下配置docker
Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在"启 ...
- Windows 上配置Docker Desktop 的k8s
前言:打算在windows上配置docker & k8s 的环境来实现abp vnext 的k8s部署,遂进行一系列的安装和配置 在docker desktop 上启动k8s但是一直在star ...
- [respberry pi3][suse] 配置docker
[respberry pi3][suse] 配置docker [respberry pi3][suse] 配置docker arm64 suse上总的软件还是比较少的,特别是对32bit的一些支持,比 ...
- 简单配置 docker swarm
简单配置 docker swarm #准备三台CentOS7 #IP划分 192.168.1.201 virtualBox1 192168.1.202 virtualBox2 ...
- centos7配置Docker镜像加速器
创建并编辑文件 [root@localhost ~]# cd /etc/docker/ [root@localhost docker]# [root@localhost docker]# ls key ...
- linux配置端口ipv6地址,linux配置ipv6地址命令
linux配置ipv6地址命令 模块加载: /etc/module.conf中增加下列行: alias net-pf-10 ipv6 配置ipv6: /etc/sysconfig/network中增加 ...
- docker mysql配置 丢失_Ubuntu16.04服务器环境配置 – Docker、MySQL、Redis
Ubuntu16.04 服务器环境配置 – Docker.MySQL.Redis 安装Docker 1. 卸载旧版本 sudo apt-get remove docker docker-engine ...
最新文章
- MySQL 数据库规范--调优篇(终结篇)
- Android 图形架构
- 给SAP Spartacus开源项目提交代码时的注意事项
- Windows Server入门系列之十 注册表的基本使用
- 人的烦恼大部分来自于没钱
- 干货||Selenium自动化测试网页
- 2016北京集训测试赛(十三) Problem B: 网络战争
- 使用PosixFilePermission的Java设置文件权限
- 【原创】软件测试基础流程
- python 新式类和旧式类
- 把自定义encoder加入ffmpeg源码
- Half-space Hyperplane
- seaborn库——分类图
- 多旋翼无人机ROSC++开发例程(四):基于Prometheus开源项目与Casadi开源优化求解器的模型预测控制简单应用例程
- org.springframework.core.styler包解读
- swift之汤姆猫实现(UIImageView动画播放)
- 建立您自己的动画贺卡
- Java实现库存防超卖_高并发场景-订单库存防止超卖
- 使用U盘安装openSUSE-Leap-15.4-DVD-x86_64
- css 实现右边div高度随着左边div内容的增加,右边div的高度也增加(左边div与右边div高度保持一致)
热门文章
- 技巧推荐 PDF文件怎么转成word文档
- html 按钮id,获取当前按钮或者html的ID名称
- Ubuntu开启BBR加速
- 英雄无敌王朝 服务器维护,魔法门之英雄无敌王朝全新护国神器玩法介绍_魔法门之英雄无敌王朝全新护国神器怎么玩_玩游戏网...
- 【思想感悟】站在巨人的肩膀上
- 关于NaN、undefined、null——基础必懂
- Mac中隐藏/显示文件或文件夹
- 玩平衡小车系列—TB6612FNG与直流电机控制教程
- hdu-2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191(多重背包)
- css 设置手机浏览器背景图片填充整个页面的小问题级解决方法