Docker启用IPv6支持的流程步骤

 更新时间:2025年04月25日 11:25:55   作者:孽小倩  
在 Docker 环境中启用 IPv6 支持可以扩展你的网络能力,尤其是在需要同时处理 IPv4 和 IPv6 流量的场景中,本文将详细介绍如何在 Docker 中配置默认的 bridge 网络以及自定义网络来支持 IPv6,需要的朋友可以参考下

今天聊聊在Docker中如何开启IPv6支持,咱们一步一步来,轻松实现!

一、Docker默认情况下IPv6未启用?

没错,默认Docker是关闭IPv6的,所以需要手动配置。

二、如何开启Docker的IPv6支持?

主要分两步:

  • 配置Docker守护进程启用IPv6
  • 创建支持IPv6的Docker网络

步骤一:修改Docker的配置文件

Docker守护进程默认的配置文件位置:

  • Ubuntu/Debian:
/etc/docker/daemon.json

编辑这个文件(如果没有,则新建):

sudo vim /etc/docker/daemon.json

添加以下内容:

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64"
}
  • ipv6: true 表示启用IPv6。
  • fixed-cidr-v6 是Docker容器使用的IPv6地址段,一般使用 2001:db8 测试用的地址。

注意:
上面的IPv6地址仅用于测试环境,生产环境需要申请合法的IPv6地址。

步骤二:重启Docker服务

修改完配置后,重启Docker守护进程:

sudo systemctl restart docker

确认一下Docker是否成功启用了IPv6:

docker network inspect bridge |grep -i ipv6

显示类似:

"EnableIPv6": true

表示成功启用了IPv6!

步骤三:创建一个支持IPv6的Docker网络

Docker默认网络是不支持IPv6的,因此我们需要创建新的IPv6网络:

sudo docker network create --ipv6 --subnet=2001:db8:1::/64 my-ipv6-net

查看网络:

docker network ls

三、启动容器并测试IPv6

咱们启动一个简单的nginx容器,测试IPv6网络:

sudo docker run -d --network my-ipv6-net --name ipv6-nginx nginx

查看容器IP地址:

sudo docker inspect my-ipv6-net

或更直观一点:

sudo docker network inspect my-ipv6-net | grep IPv6Address

你会看到类似:

"IPv6Address": "2001:db8:1::242:ac11:2/64"

说明IPv6生效了。

四、测试IPv6连通性

宿主机尝试Ping一下容器的IPv6地址:

ping6 2001:db8:1::242

如果通了,说明IPv6配置成功!

示例快速复习

下面用一个完整的示例再走一遍流程:

# 1. 修改Docker配置
sudo tee /etc/docker/daemon.json <<EOF
{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64"
}
EOF
 
# 2. 重启Docker
sudo systemctl restart docker
 
# 2. 创建IPv6网络
sudo docker network create --ipv6 --subnet=2001:db8:1::/64 my-ipv6-net
 
# 3. 启动容器
sudo docker run -d --name ipv6-nginx --network my-ipv6-net nginx
 
# 4. 查看IPv6地址
sudo docker inspect ipv6-nginx | grep IPv6Address

总结与注意事项:

  • Docker默认不开启IPv6,要通过配置文件开启。
  • IPv6地址最好申请合法的公网地址用于生产环境。
  • 注意防火墙可能会阻止IPv6通信,防火墙也要相应配置开放IPv6端口。

这样Docker就能愉快地用上IPv6啦

到此这篇关于Docker启用IPv6支持的流程步骤的文章就介绍到这了,更多相关Docker启用IPv6内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker镜像压缩squash的实现

    docker镜像压缩squash的实现

    本文主要介绍了docker镜像压缩squash的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 如何通过Docker容器创建一个Web服务器

    如何通过Docker容器创建一个Web服务器

    这篇文章主要介绍了如何通过Docker容器创建一个Web服务器的相关资料,并对Nginx进行基本配置和测试,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Docker数据卷和挂载目录的使用

    Docker数据卷和挂载目录的使用

    docker 在容器中管理数据主要有两种方式,包括数据卷和挂载主机目录,本文主要介绍了Docker数据卷和挂载目录的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • docker启动nginx及常见nginx配置方式

    docker启动nginx及常见nginx配置方式

    这篇文章主要介绍了docker启动nginx及常见nginx配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Mac为docker和kubectl添加自动补全命令的方法

    Mac为docker和kubectl添加自动补全命令的方法

    很多朋友不太明白如何为docker和kubectl添加自动补全命令,本文通过一些示例给大家介绍kubectl基础概念及语法知识,需要的朋友参考下吧
    2021-06-06
  • 如何在mac上用docker对Oracle进行部署使用

    如何在mac上用docker对Oracle进行部署使用

    这篇文章主要介绍了如何在mac上用docker对Oracle进行部署使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Docker容器实战之镜像与容器的工作原理

    Docker容器实战之镜像与容器的工作原理

    这篇文章主要介绍了Docker容器实战之镜像与容器,关于镜像与容器的工作原理,下面文章将详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • 教你如何获取Harbor的带tag的镜像清单

    教你如何获取Harbor的带tag的镜像清单

    这篇文章主要介绍了如何利用Java语言实现获取harbor中全部镜像的带tag的清单,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • Docker 容器之间的互相通信实现示例

    Docker 容器之间的互相通信实现示例

    本文主要介绍了Docker 容器之间的互相通信实现示例,通过创建自定义网络,你可以轻松地在 Docker 容器之间建立通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • 使用Docker部署Nginx并挂载目录详解

    使用Docker部署Nginx并挂载目录详解

    这篇文章主要为大家详细介绍了使用Docker部署Nginx并挂载目录的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04

最新评论