这篇文章上次修改于 427 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
我为什么需要 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
命令管理软件,装上之后就是这样的啦!
安装 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 的环境变量.
我用这个命令连接的感觉一卡一卡的,不知道是远程所以有延迟帧率低还是别的什么原因.反正能用就行,大部分时候我也只是命令行操作一下.
解决 KEX 无法连接的链接: 知乎
关闭 KEX
很明显图形化界面是很消耗内存的,不用的时候应该关了.(开了其他东西后最高吃过我物理机快一半的内存,比垃圾 Windows11 系统还高
kex kill
如果在桌面环境执行,过一会就会断开连接,并且占用内存会慢慢降低.我这个占用在 1G 以内.
最终方案
用 Debian 镜像通过 apt 命令装 docker, 因为那个桌面版又出问题了....
目前是只有一个 Debian 发行版在电脑上的, 不过这样也好, 升级的时候就不用担心挂掉了.
已有 7 条评论
这个还是用虚拟机好点 我之前用的物理机 跑起来别提多舒服了
@墨点白 桌面版自带的镜像我实在是用不来,感觉就和容器差不多.环境变量和一些常用命令都没有,甚至连docker命令都没有.现在等于是在WSL中安装docker,但还是不好用,因为不是物理机.而且感觉开了之后会分我物理机的内存,剩下的可用内存小了很多(哪怕WSL只占300M也是如此)
@XY 玩还是使用虚拟机好些,wsl性能太差了,你是做安全相关的吗?
@墨点白 实际上我是安卓方向的,但对于Java可以说是厌恶了.目前的方向是偏前端的,不是网安.
@XY 安卓吗 我对这个还是很感兴趣的 我是专攻java会点前端
@XY 实际上学校压根就没怎么教安卓,课程学完了也只能做点最基础的东西.像现在主流的APP里的UI交互和后台保活这些完全没提过,当时同学用个百度地图的SDK都做不了最后放弃.
@XY 在学校也就那样吧 都是出来之后在公司学到的 OωO