Docker容器开启IPv6

Docker默认不开启IPv6配置,某些场景我们又需要IPv6网络支持,随着IPv6的普及,以后的使用场景会越来越多;

Docker开启IPv6支持

首先编辑 /etc/docker/daemon.json 配置文件,默认是没有该文件的,执行以下命令直接创建;

cat >/etc/docker/daemon.json <<EOF
{
    "ipv6": true,
    "fixed-cidr-v6": "fd00::/80",
    "experimental": true,
    "ip6tables": true
}
EOF

然后重启Docker服务;

systemctl restart docker

Docker-Compose启用IPv6

docker-compose.yaml 中使用以下配置启用IPv6地址:

networks:
      local_bridge:
        enable_ipv6: true
        driver: bridge
        ipam:
          config:
            - subnet: "fd00:1001::/80"

docker-compose.yaml 文件必须使用 version: “2”,version: “3” 不支持 enable_ipv6 配置;

image-20220712094702457

如果已有旧的容器在运行(网络配置发生了变化),则需要先销毁容器 docker-compose down 然后再重新创建 docker-compose up

手动创建IPv6网络

创建网络时带 --ipv6 选项,示例如下:

docker network create -d bridge --ipv6 --subnet "fd00:1001::/80" local_bridge

测试

最后在容器内ping一下IPv6地址;

# 进入容器命令行
docker exec -it php bash
# 为容器安装ping命令
apt-get update
apt-get install iputils-ping
# ping
ping -6 dns.google

image-20220712095357453

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐