docker支持ipv6
方法
方法一、Pv6地址
不为容器中的服务特别分配IPv6地址。
只要Docker把外部的IPv6地址端口映射到容器的IPv4端口上,随后访问主机的IPv6相应端口即可。
方法二、为Docker网络分配IPv6地址
(1)Docker daemon默认只支持IPv4地址,通过在运行Docker时增加--ipv6参数可以使其同时支持ipv4和ipv6地址。
(2)此时容器仅获得了本地ipv6地址,如果要获得全局ipv6地址,必须确保机器有至少/80的地址段,通过在运行Docker时增加--fixed-cidr-v6参数为其配置ipv6子网。
该参数会在路由表中添加一条路由,相当于执行了一下命令:
$ ip -6 route add 2001:db8:1::/64 dev docker0
$ sysctl net.ipv6.conf.default.forwarding=1
$ sysctl net.ipv6.conf.all.forwarding=1
随后,所有路由往2001:db8:1::/64的流量都会通过docker0接口路由
(3)除了在运行时添加参数,还可以直接编辑/etc/docker/daemon.json文件,加入以下内容:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
其中2001:db8:1::/64是IPv6地址段。
systemctl reload docker
(4)使用systemctl restart docker命令重启Docker。
(5)使用ifconfig命令查看分配到Docker网络的IPv6地址段
(6)完成了上面的配置之后,无需特意配置,只需正常建立容器,即可为容器分配IPv6地址。可以使用“docker inspect容器名”查看容器的IP地址。
官网教程
启用ipv6
Edit /etc/docker/daemon.json, set the ipv6 key to true and the fixed-cidr-v6 key to your IPv6 subnet. In this example we are setting it to 2001:db8:1::/64.
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
Save the file.
Reload the Docker configuration file.
$ systemctl reload docker
启用外部转发
https://docs.docker.com/netwo...
Enable forwarding from Docker containers to the outside world
By default, traffic from containers connected to the default bridge network is not forwarded to the outside world. To enable forwarding, you need to change two settings. These are not Docker commands and they affect the Docker host’s kernel.
Configure the Linux kernel to allow IP forwarding.
$ sysctl net.ipv4.conf.all.forwarding=1
Change the policy for the iptables FORWARD policy from DROP to ACCEPT.
$ sudo iptables -P FORWARD ACCEPT
These settings do not persist across a reboot, so you may need to add them to a start-up script.
创建自己的 ip6 网卡
开启ip6网卡后,只有 bridge 网卡,会自动启用 ip6
创建 user ip6 网卡
docker network create -d bridge --subnet 172.30.20.0/24 mynet2 --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
# 需要仿照 bridge 的信息进行配置
docker inspect 37da
{
"Subnet": "2001:db8:1::/64",
"Gateway": "2001:db8:1::1"
}
docker network create -d bridge --ipv6 --subnet "2001:db8:2::/64" --gateway="2001:db8:2::1" --subnet=172.30.20.0/24 mynet2
绑定自己的容器到 自定义的网卡
docker run -d -p 30080:80 --net mynet2 nginx
$ sysctl net.ipv6.bindv6only = 1
$ sysctl net.ipv6.conf.default.forwarding=1
$ sysctl net.ipv6.conf.all.forwarding=1
docker network create -d bridge --ipv6 --subnet "2001:db8:3::/64" --gateway="2001:db8:3::1" --subnet=172.30.30.0/24 mynet3
docker run -d -p 30080:80 --net mynet3 nginx
如果需要 直接根据 ip 访问容器 需要 增加 路由配置
ip -6 route 查看路由中转
# 定向 2001:db8:1::/64 ip6 到 docker0 网卡设备
ip -6 route add 2001:db8:1::/64 dev docker0
暂停 删除所有
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker支持ipv6的更多相关文章
- docker 支持ipv6 (核心要点是ndp需要把docker内的ip全部加入到ndplist中来)
IPv6 with Docker Estimated reading time: 10 minutes The information in this section explains IPv6 wi ...
- nfs 支持ipv6
mount 一个ipv6 nfs 项目在docker里mount 一个nfs来读写,而现在需要支持ipv6,所以先写了各小demo,最后成功mount,这里记录一下 #include <sys/ ...
- 阿里云开源镜像站支持IPv6访问
阿里云开源镜像站在国内企业镜像站中率先支持IPv6访问! 点击立即试用https://developer.aliyun.com/mirror/ 同时基于阿里云OpenSearch的搜索能力,开源镜像站 ...
- iOS 支持 IPv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网络. 官方文档:https://developer.apple.com/library/mac/documentati ...
- linux centos6.5支持ipv6
1.用ifconfig查看有没有inet6 addr,我的这个已经支持了,如果不支持请看第二步. 2.vim /etc/sysconfig/network 把这句改成:NETWORKING_IPV6= ...
- iOS应用支持IPV6,就那点事儿
原文连接 果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...
- iOS应用支持IPV6
一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...
- 用尽洪荒之力解决Apple Store ipv6审核通关---linux服务器支持ipv6
强势的库克时代到来,苹果开启了强制IPV6审核,大家也知道中国现在的情况,除了教育网实验性的支持IPV6,ISP运营商还不支持,想必大家都陆陆续续的遭受到了苹果无情的拒绝,以前开个加急,审核 ...
- iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6
一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...
随机推荐
- OID天下第一 (双指针,LCT,线段树)
题面 或曰:"笑长天下第一!",OID 喜得合不拢嘴:"哈哈哈哈哈哈--" OneInDark 是天下第一的. OneInDark 给了你一个 n n n 个点 ...
- 从零开始搭建react基础开发环境(基于webpack5)
前言 最近利用闲暇时间把webpack系统的学习了下,搭建出一个react环境的脚手架,写篇文章总结一下,帮助正在学习webpack小伙伴们,如有写的不对的地方或还有可以优化的地方,望大佬们指出,及时 ...
- qt调用quit()后未结束线程解决方案
正常操作 正常写Qt的多线程,需要继承QThread,然后重写run函数,调用start后,在run函数中实现子线程的运行,这个时候会开启事件循环,可以调用quit()函数来结束当前的线程. 其他操作 ...
- 简单创建一个SpringCloud2021.0.3项目(一)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 新建父模块和注册中心 1. 新建父模块 2. 新建注册中心Eureka 3. 新建配置中心Config 4. 新建两个业务服务 1. ...
- mybatis_config xml配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- electron 起步
electron 起步 为什么要学 Electron,因为公司需要调试 electron 的应用. Electron 是 node 和 chromium 的结合体,可以使用 JavaScript,HT ...
- 02 uniapp/微信小程序 项目day02
一.分类 1.1 页面布局 首先创建cate的分支 定义基本结构,因为是两个需要滚动的区域,所以这里要用到组件 scroll 这个组件如果是y scroll那就要固定高度,x scroll那就要固定宽 ...
- 8. Ceph 基础篇 - 运维常用操作
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485300&idx=1&sn=aacff9f7 ...
- rook-ceph说明
cluster.yaml文件 文件中有几个地方要注意: dataDirHostPath: 这个路径是会在宿主机上生成的,保存的是ceph的相关的配置文件,再重新生成集群的时候要确保这个目录为空,否则m ...
- MongoDB 副本集的用户和权限一般操作步骤
步骤总结: 在主节点上添加超管用户,副本集会自动同步 按照仲裁者.副本节点.主节点的先后顺序关闭所有节点服务 创建副本集认证的key文件,复制到每个服务所在目录 修改每个服务的配置文件,增加参数 启动 ...