目录
[3.1 在WSL子系统中,通过/mnt访问window下的yaml文件](#3.1 在WSL子系统中,通过/mnt访问window下的yaml文件)
一、目的
解决在window环境下使用WSL安装的Docker desktop客户端,配置jenkins与本机WSL子系统下docker通信;
二、当前问题
操作系统:Window10
子系统:WSL+Ubuntu 22.04
当直接通过window环境下,执行某个文件夹下的yaml文件时,如果想要挂载的内容是属于WSL子系统内部某个服务,会报错。最简单的方法,需要登录WSL子系统,在内部运行docker命令,挂载子系统内部地址;
问题详细说明:
1、yaml文件存放在window磁盘下

2、在yaml文件中配置在WSL子系统中的docker.sock所在路径
bash
version: '3.2'
services:
web:
image: 'jenkins/jenkins:lts-jdk21'
container_name: 'jenkins'
restart: always
environment:
- JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true
ports:
- '9090:8080'
- '50000:50000'
volumes:
- '/jenkins_home:/var/jenkins_home'
- '/var/run/docker.sock:/var/run/docker.sock'
- '/usr/bin/docker:/usr/bin/docker'
3、在window下执行compose命令,报错
因为window操作系统和WSL子系统的文件是隔离的,若在WSL内访问window上的文件系统需要通过挂载路径/mnt ;若window上访问wsl的文件系统则可以使用\\wsl$ (网络驱动器);

三、解决方案
3.1 在WSL子系统中,通过/mnt访问window下的yaml文件
bash
#进入jenkins配置的yaml文件夹所在目录
cd /mnt/d/docker-project-compose/jenkins
#执行docker-compose命令
docker-compose up -d

在jenkins下配置docker

四、文章总结
本文主要解决了在WSL子系统与windows调用docker服务问题,并为Jenkins设置了Docker的访问配置,让Jenkins能够在docker中部署服务;