[研发工具]在Window10使用WSL在Docker desktop中运行Jenkins并配置Jenkins的docker.sock

目录

一、目的

二、当前问题

三、解决方案

[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中部署服务;