前言
开发Dify插件时,发现本地部署的Docker无法使用IPv6网络。
为方便测试,启动一个简单的ubuntu容器,docker-compose.yml如下:
services:
ubuntu:
image: ubuntu:22.04
container_name: ubuntu
command: /bin/bash
environment:
- TZ=Asia/Shanghai
stdin_open: true
tty: true
容器启动后,安装curl命令用于测试。
apt-get update
apt-get install curl
Docker访问IPv6网站报错截图:

WSL访问IPv6网站报错截图:

查看docker网络,显示IPv6是禁用的

docker network inspect ubuntu_default
解决方案
解决步骤如下:
1. 设置WSL的networkingMode
修改C:Users<your_username>.wslconfig(如文件不存在则新建),设置networkingMode为mirrored
[wsl2]
networkingMode=mirrored
修改后重启windows。重启后,WSL可以访问IPv6网站了,但Docker容器还不行。

2. 设置Docker允许IPv6
打开Docker Desktop设置,在Docker Engine配置加上如下设置项:
"default-network-opts": {
"bridge": {
"com.docker.network.enable_ipv6": "true"
}
}
点击"Apply & restart"重启Docker Engine。
3. 重建Docker容器
用如下命令重建容器:
docker compose down
docker compose up -d
查看docker网络,显示IPv6是启用的。
docker network inspect ubuntu_default
Docker容器中可以正常访问IPv6网络。
至此,问题得到解决。
#Docker #IPv6网络不通 #Dify插件开发
如果您觉得本文对您有帮助,欢迎关注、点赞、转发、推荐
上一条:宝塔面板Docker模块全解析
下一条:一键部署docker环境MariaDB+Milvus+Attu+OpenWebUI