两句话讲清楚windows安装wsl和docker
文章目录
两句话讲清楚windows安装wsl和docker写在前面解决方案
写在前面
背景:win10/win11,微软商店打不开(打得开还不简单?能打开你直接搜别的攻略得了)准备: 先直接说一个结论:不要考虑 Docker Desktop,你都装wsl了,为什么还要用这玩意儿!此外,即使你想用,后续会遇到一个问题(怎么在wsl的linux系统里重启docker服务,没错,systemctl restart docker
会显示找不到docker服务,即使你能正常使用docker)不考虑微软商店安装,不多比比,很多原因导致你的微软商店打不开,不折腾了,走离线安装,听我的。如果你能打开微软商店,很多事情就变得简单了,你自己看着办吧。 解决方案
下载安装wsl2:
先确认你的系统能不能安装wsl2,不能就赶紧放弃(我是22H2)
https://docs.docker.com/desktop/install/windows-install/
Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
Windows 10 64-bit:
We recommend Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.Minimum required is Home or Pro 21H2 (build 19044) or higher, or Enterprise or Education 21H2 (build 19044) or higher.很好,你满足了系统要求,已经成功一半了。继续 配置环境
启动控制面板,打开hyperV、适用于Windows的linux子系统、虚拟机功能,然后重启
下载wsl2安装包:wsl_update_x64.msi,双击安装
下载系统,比如ubuntu啥的
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributions
命令行下载、或者点击直接下载都可以,下载后是 .appx
后缀的文件
把这个 .appx
的文件复制到你想要放置系统的位置,比如 D:\ubuntu22\
下,右键解压缩(解压不了,就把后缀 .appx
改为 .zip
再解),解压后的文件列表如下:
双击红色箭头指的文件就可以开始安装系统了,启动!完事儿后会让你输入用户名和密码,用户名就不说了,密码是未来你sudo要用的密码。
安装完成后,开始菜单里面就能看到ubuntu了,双击打开。或者直接在命令行中输入ubuntu,也能打开。(打开后不要关,下面验证的时候,state才会显示为running)
检查安装好了没:wsl --list --verbose
备注:如果要卸载:wsl --unregister Ubuntu
环境配置:
wsl默认版本设置为2,ubuntu默认设置为wsl2
其实这一步可以不做,如果你能正常进入ubuntu的话,不过有的教程做了,保险起见吧,先把这两行在powershell管理员启动里面跑了再说
wsl --set-default-version 2wsl.exe --set-version Ubuntu 2
systemctl命令启动
wsl安装的ubuntu里是没法用systemctl的,因为是init
WSL2 本身是由 Windows 负责运行的,因此使用 tree 或 ps 命令时会看到根进程不是 systemd,这将导致无法启动 Linux 系统服务的守护进程(deamon)。当我们执行 systemctl 命令的时候,会显示出我们的 init system (PID 1) 并非 systemd,而是微软提供的 /init。
太坑爹了是吧,别搜,听我的,现在网上一堆解决问题,其实已经outdated,因为微软已经解决了!
https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/
Systemd support is now available in WSL!
所以这事儿简单,听微软的
sudo创建文件:/etc/wsl.conf
写入以下内容并保存:
[boot]systemd=true
关掉ubuntu,关掉wsl的窗口,启个命令行关掉wsl
wsl --shutdown
重新打开就发现 systemctl
能用了,这一步是干啥呢,后面 systemctl restart docker
改docker镜像要用啊
root启动:su
你直接su
,然后输入密码是报错的:su: Authentication failure
怎么解决呢:sudo passwd root
,重新输入密码就行了,后面直接su进入root用户开搞,不然什么都要sudo,麻烦的嘞 配置ubuntu的源(22.04)
备份原来的:cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改并更新:vim /etc/apt/sources.list
# 选一家的就行了# aliyundeb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse# tsinghuadeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse# 中科大deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse# 163deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
刷新:apt-get update && apt-get upgrade
下载安装docker并配置国内代理:在wsl2中安装Docker,非Docker Desktop方案
安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库
apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加 Docker 官方 清华 库
add-apt-repository \ "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable"
安装docker
apt install docker-ce docker-ce-cli containerd.io docker-compose
配置docker国内源:docker就没辙了,默认源肯定不行,所以
创建文件 /etc/docker/daemon.json
写入下面内容并保存
{ "registry-mirrors" : [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ]}
重载和重启:好家伙,这时候 systemctl
就能用上了, 这个地方卡了我好久,气死了家人们
systemctl daemon-reloadsystemctl restart docker# 开机自启dockersystemctl enable docker
检查一下docker换源成功没:docker info
,往下翻,Registry Mirrors里面就是你的源
验证一下docker好不好使吧:docker pull hello-world
最后:其实我不是很明白5中一顿操作安装docker-ce
,还不如直接 apt install docker.io
https://blog.csdn.net/harryhare/article/details/106015022
docker-ce 是 docker 官方维护的docker.io 是 Debian 团队维护的docker.io 采用 apt 的方式管理依赖docker-ce 用 go 的方式管理依赖,会自己管理所有的依赖。☁️ 我的CSDN:
https://blog.csdn.net/qq_21579045
❄️ 我的博客园:https://www.cnblogs.com/lyjun/
☀️ 我的Github:https://github.com/TinyHandsome
? 我的bilibili:https://space.bilibili.com/8182822
? 我的知乎:https://www.zhihu.com/people/lyjun_
? 粉丝交流群:1060163543,神秘暗号:为干饭而来 碌碌谋生,谋其所爱。? @李英俊小朋友