You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Docker Desktop(WSL2)环境中CNI插件配置文件的位置

Docker Desktop on WSL2 (Docker-in-containerd): CNI Config File Locations

核心前提

在你描述的Docker-in-containerd架构中,Docker引擎运行在services.linuxkit容器内,所以CNI配置文件并不在WSL2主机的常规路径中,而是存放在这个后台容器的文件系统里。

1. 进入services.linuxkit容器

要访问CNI配置,首先需要进入这个后台容器的shell环境:

  • 最直接的方式是在WSL2终端执行Docker命令:
    docker exec -it services.linuxkit sh
    
  • 如果Docker命令无法直接使用,也可以通过nsenter切入容器的命名空间(需要root权限):
    sudo nsenter -t $(pgrep -f services.linuxkit) -m -u -i -n -p sh
    

2. 容器内的CNI配置路径

进入容器后,你可以在以下路径找到CNI相关文件:

  • /etc/cni/net.d/:这是CNI标准的配置目录,存放JSON格式的网络配置文件,比如默认网桥的10-docker-bridge.conf。文件里定义了VETH对创建、网桥关联、IP地址分配等规则,对应你提到的docker1-eth0、services1-eth0这类VETH设备的组网逻辑。
  • /run/cni/:这个目录是CNI运行时生成的状态存储,包含网络命名空间的关联信息、插件运行日志等,但核心配置文件还是在/etc/cni/net.d/。

3. WSL2主机侧的间接访问(可选)

如果你不想进入容器,也可以在WSL2主机的/mnt/wsl/docker-desktop-data/路径下找到services.linuxkit容器的存储层,但这个路径的内部结构会随Docker Desktop版本变化,稳定性不如直接进入容器查看。

注意事项

  • Docker Desktop的CNI配置是动态生成的:当你创建自定义Docker网络时,会自动在/etc/cni/net.d/下生成对应的配置文件。
  • 部分配置可能会被Docker Desktop的后台服务自动修改,手动修改后可能会被覆盖,建议先备份再调整。

内容的提问来源于stack exchange,提问作者TheDiveO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:17:21