除了Microsoft Store中含有的Linux子系统镜像、Microsoft官方提供的Linux子系统镜像https://learn.microsoft.com/en-us/windows/wsl/install-manual以及他人制作的Linux子系统镜像可以创建为Wsl子系统外,WSL还支持将任意Linux容器镜像导入为Wsl子系统,这对于想要拥有某个特定发行版、特定版本的子系统的人说是一个福音。
以Ubuntu24.04为例,由于Ubuntu24.04刚发行不久,此时Microsoft官方还没有提供该发行版,但DockerHub上已经存在Ubuntu24.04的容器镜像。按照下面的步骤,可以完成Ubuntu2404子系统的创建。
前提条件:
已经拥有一个docker(或者podman)并已启动
windows上已经安装好wsl
步骤1:通过docker拉取ubuntu2404容器镜像,并将其导出为tar归档文件(ubuntu2404.tar)
sudo docker pull ubuntu:24.04
sudo docker run ubuntu:24.04
container_id=$(sudo docker container ls -a | grep -i 'ubuntu:24.04' | awk '{print $1}')
sudo docker export $container_id > ubuntu2404.tar
步骤2:将导出的ubuntu2404.tar文件复制到windows上,假设存放路径为V:\wsl\ubuntu2404.tar
步骤3:Windows上打开PowerShell,将ubuntu2404.tar文件导入到wsl
# 假设想要将导入后创建的Ubuntu2404子系统保存在目录V:\wsl\Ubuntu24-04_v1中
# 并且该子系统的名称为Ubuntu2404
wsl --import Ubuntu2404 V:\wsl\Ubuntu24-04_v1 V:\wsl\ubuntu2404.tar
现在,Ubuntu2404子系统已经创建好了(可通过wsl -l -v命令查看),已经可以进入该子系统并设置该子系统,比如设置该子系统的默认登录用户。
# 登录子系统
wsl -d Ubuntu2404
# 进入子系统后,创建新用户(用户名longshuai,uid/gid为1200)并修改密码,稍后设置为该子系统的默认登录用户
# 顺便把root用户的密码也修改
root@DESKTOP:$ useradd -u 1200 -s /bin/bash -m -d /home/longshuai longshuai
root@DESKTOP:$ passwd
root@DESKTOP:$ passwd longshuai
# 如果通过下面的方式设置默认的登录用户无效,可使用工具LxRunOffline来设置
root@DESKTOP:$ echo -e "[user]\ndefault=longshuai" >> /etc/wsl.conf
root@DESKTOP:$ exit
]]>可以通过执行【docker version】命令来查看,如果输出信息中包含Client选项和Server选项,那么就表示已经安装了docker
以下安装步骤使用 Centos7.x 操作系统。
(以下安装 docker 步骤适用于 Centos,其他系统安装请参考 Docker官方文档)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-nightly
sudo yum install docker-ce docker-ce-cli containerd.io
systemctl start docker #启动容器
systemctl enable docker #开机自启
systemctl status docker #查看状态
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
1.下载安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.给执行权限
sudo chmod +x /usr/local/bin/docker-compose
3.创建链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.查看docker-compose版本
docker-compose --version
5.创建docker-compose.yml文件
vim docker-compose.yml
6.使用方法
docker-compose up -d
over
]]>