我正在参加「掘金·启航计划」
子系统换存储位置
-
在d盘创建一个文件夹
D:\1-sub_ubuntu -
打开powershell管理员界面
-
执行
wsl -l -v看下ubuntu版本PS C:\WINDOWS\system32> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Running 2 -
导出分发版为tar文件到d盘
wsl --export Ubuntu-18.04 d:\Ubuntu-18.04.tar -
注销当前分发版
wsl --unregister Ubuntu-18.04 -
重新安装已导出的发行版本
wsl --import Ubuntu-18.04 D:\1-sub_ubuntu D:\Ubuntu-18.04.tar --version 2
# wsl --import <安装发行版本名称> <安装发行版本路径> <已导出的发行版本> --version <wsl版本>
- 执行完后,就可以删除D:\Ubuntu-18.04.tar了
【参考】:blog.csdn.net/qq_39683682…
wsl配置
-
默认root用户登入设置
- 启用cmd,输入如下命令
cd %HOMEPATH%\AppData\Local\Microsoft\WindowsApps - 执行如下命令,找到ubuntu实例目录
dir - 进入实例目录
cd anonicalGroupLimited.Ubuntu18.04LTS_79rhkp1fndgsc - 修改默认用户为root
ubuntu1804.exe config --default-user root - 重启WSL子系统即可看到效果
- 启用cmd,输入如下命令
-
替换国内镜像源
-
编辑/etc/apt/sources.list
vim /etc/apt/sources.list -
将文件中的内容全部注释掉,替换如下内容
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse -
编辑好保存后,执行如下命令更新源列表
sudo apt update -
更新已安装的所有软件
sudo apt upgrade -
命令执行完就可以了。
wsl 安装docker
WLS2下通过
apt install docker-ce命令安装的docker无法启动,因为WSL2方式的ubuntu里面没有systemd。因此采用官方get-docker.sh安装的docker,dockerd进程是用ubuntu传统的init方式而非systemd启动的。 -
-
下载get-docker.sh
curl -fsSL https://get.docker.com -o get-docker.sh -
执行脚本
sudo sh get-docker.sh需要等待20S -
启动docker
sudo service docker start -
检查docker安装正常
service docker status ps aux|grep docker -
检查拉取镜像等正常
docker pull busybox
【参考】 zhuanlan.zhihu.com/p/148511634
问题记录*
- docker 无法启动,提示
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
翻看日志发现time="2022-08-23T22:31:38.413595000+08:00" level=warning msg="grpc: addrConn.createTransport failed to connect to {unix:///var/run/docker/containerd/containerd.sock <nil> 0 <nil>}. Err :connection error: desc = \"transport: Error while dialing dial unix:///var/run/docker/containerd/containerd.sock: timeout\". Reconnecting..." module=grpc failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.6.1: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
解决办法: 以管理员身份启动terminal,再启动下docker就可以了。