该问题已解决。
Windows下也可使用docker in docker的方案。
Windows下的docker和Linux的配置略有不同。
1. 首先docker-desktop必须按照如下配置。当前的docker必须挂载(是否应该用挂载)到已有的一个wsl发行版上。
"1706093458024.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/3e927c53029ac774a0937df3bfb993ad.png)
该配置导致的区别是在WSL系统中是否可以直接执行docker命令,并且具有docker相关的目录。
此处开启后,即可使用-v /var/run/docker.sock:/var/run/docker.sock -v
/usr/bin/docker:/usr/bin/docker这种挂载卷的参数来让容器访问宿主机的docker命令。
2. 其次是针对Windows系统,仅挂载-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker两个路径是不够的,还需要挂载docker-cli的路径,在WSL中的路径为/usr/bin/com.docker.cli。
即增加挂载-v /usr/bin/com.docker.cli:/usr/bin/com.docker.cli
完成以上两个配置可以在Windows下的docker中允许Jenkins,同时Jenkins中也可以执行宿主机的docker命令,目前看此种方式没有任何权限问题