这篇文章上次修改于 187 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

我为什么需要 Docker

就目前而言,主要还是出于学习目的去下的 Docker Desktop, 结果发现这软件实在是太拉了.不仅没一个中文而且功能也和我想的不一样,既然如此我还不如回归命令行.

有一阵子没用了,前几天打开弹了一个更新,之后 wsl 命令就不能正常连接上 Linux 了,经过几天的折腾几次重装,终于放弃了.在不重装系统的情况下我这台电脑估计都不能正常跑.

学会了 Docker Desktop, WSL 和 Linux 发行版的安装卸载删除,确实是有收获的

卸载 Docker Desktop

众所周知由于 Windows 的垃圾管理,绝大部分软件在卸载时都或多或少有残留文件,我是使用 geek 这个软件来卸载的.如果是在应用管理中卸载并且出现问题了,可以去 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Docker Desktop 看看,值得一提的是需要把整个文件夹删除才会正常,我留了一个空文件夹导致安装了卸载软件找不到;删除了安装程序又认为我已经安装了.

卸载 Linux 发行版

当执行完上面一步后,我惊喜的发现了在文件管理中的那个 Linux 还在,里面的两个 docker 系统也还能正常访问.

如果是在应用商店里下载的发行版,那可以先去设置 > 应用 > 安装的应用中搜索 Linux 删除程序.但貌似不会删除硬盘上的文件.

wsl -l -v 查看镜像名,然后 wsl --unregister NAME 删除对应的镜像(执行完可以看到文件管理中对应的文件没了

卸载 WSL

删不了,只能在应用管理中删除数据和 Linux 内核.

这玩意能安不能删,实在是离谱.


下面是在 WSL 中安装 Docker.

本来是打算去装 ManjaroKDE 的,虽然找到了教程但过程有些繁琐.考虑到支持问题还是选择官方渠道就有的 Kali.

安装 Kali

执行 wsl --list --online 可以看到 Docker 版本的几个不同系的发行版,然后去应用商店安装你想要的版本吧!(虽然没有证据证明两边有哪里不一样,但我一开始用命令行安装的确实有点问题,所以还是老老实实去应用商店吧

如果你是去应用商店安装的,那么你可能会看到一个老哥在下面的避坑评论,我遇到的就是那种情况(头铁

Kali 使用 apt OR apt-get 命令管理软件,装上之后就是这样的啦!
Kali

安装 Docker

apt install docker 这个命令是不行的,安装完之后是找不到 docker 这个命令的.建议还是去看官方的安装示例.

apt install docker.io 才是我想要的那个东西,但是这样安装后自带的 compose 居然还是 1.X 版本的,于是我还得去自己装一个 2.X. 官方源在 GitHub, 选择 release 中的 linux_x86_64 就行.网络不好的话 curl 大概行不通,我是下到本地直接挪过去的.这样需要 chmod +x来添加文件的执行权限.

安装 KEX

apt install kali-win-kex

如果因为缺少某些依赖报错,直接丢到搜索引擎就能解决.

我也是第一次用这玩意,能跑起来就不错了.为了看到图形界面,我可是折腾的好久.

按照这个软件的逻辑应该是 kex start;kex就能跑起来的,但是我起了服务之后出现了 VNC 的窗口只会显示黑屏,过几秒又自己关闭了.解决方法也很简单,应该是加几个参数换一种连接方式.改用 kex --esm --ip -s 就能成功连接上了.测试了一下不用 start 就能跑,但要在非 root 账户下执行,不然可能会报错.(更新:新开一个命令行解决报错,因为这个命令同时依赖 Linux 和 Windows 两边的环境变量,切换用户后可能会丢失 Windows 的环境变量.

我用这个命令连接的感觉一卡一卡的,不知道是远程所以有延迟帧率低还是别的什么原因.反正能用就行,大部分时候我也只是命令行操作一下.
Kali-desktop
解决 KEX 无法连接的链接: 知乎

关闭 KEX

很明显图形化界面是很消耗内存的,不用的时候应该关了.(开了其他东西后最高吃过我物理机快一半的内存,比垃圾 Windows11 系统还高

kex kill

如果在桌面环境执行,过一会就会断开连接,并且占用内存会慢慢降低.我这个占用在 1G 以内.

最终方案

用 Debian 镜像通过 apt 命令装 docker, 因为那个桌面版又出问题了....

目前是只有一个 Debian 发行版在电脑上的, 不过这样也好, 升级的时候就不用担心挂掉了.