抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

由于开发项目想在本地安装了一个Docker Desktop,第一次安装时候很顺畅,并且治好了之前 WSL 不能用的问题。但是因为 Docker Desktop 默认C盘安装,导致本来不富裕的C盘,直接没有一点存储了。 最后,我查看资料后,卸载重装到了D盘。这个过程遇到了一堆又一堆问题,因此,记录下来。

Docker Desktop 能否安装到除C盘外的其它盘

这个问题的答案肯定是可以的。

配置软链接

Docker 默认安装路径为C:\Program Files\Docker。使用管理员权限打开命令终端

值得注意的是, C盘的文件夹一定不能先有,而D盘的文件夹要提前创建好。

1
2
3
4
5
6
7
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

mklink /j "C:\Users\byronlau\AppData\Local\Docker" "D:\Program Files\Docker\Local"

mklink /j "C:\Users\byronlau\AppData\Roaming\Docker" "D:\Program Files\Docker\Roaming\Docker"

mklink /j "C:\Users\byronlau\AppData\Roaming\Docker Desktop" "D:\Program Files\Docker\Roaming\Docker Desktop"

安装Docker Desktop

一定要确保D盘中的目录创建和软链中的对应上,否则安装会报错。同样C盘中的软链的目录都需要不存在,如果存在,则删除掉。

因为少创建了一层目录,导致安装报错,会有提示,按着指引去查看日志就行了。

安装日志目录:D:\Program Files\Docker\Local

Clip_2024-06-26_19-46-21

如果保证一切正常,不出意外,应该这里就应该可以正常启动Docker Desktop 了,但生活总是事与愿违。它报错了!!!

遇到的问题

/mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso: no such file or directory

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Stdout:

Stderr:
2020/05/27 20:01:37 resolving /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso...
Error: mounting wslCLIDest: stat /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso: no such file or directory
2020/05/27 20:01:37 stat /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso: no such file or directory
mounting wslCLIDest
main.doRun
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:224
main.run.func1
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:83
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:838
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:943
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).Execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:883
main.main
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1373`

不清楚是我之前装过 Docker Desktop 的原因,还是我卸载的时候,没有卸载彻底,因为在卸载一半时候,我看卡那里不动了,就关闭了卸载窗口。

对于这个问题有人说是 WSL2 自身的bug,需要执行 wsl --shutdown,然后关闭 Docker Desktop Service 服务。然后重启服务。这个我也试了,没有解决。 西北偏北UP|WSL2 bug

最后,我应该是重新安装的 WSL ,然后重启 Docker Desktop 解决了这个问题,wsl --install,但是我不确定。

docker engine stopped

看这篇文章大概就有思路 windows 11系统下打开docker 提示 docker engine stopped

一句话很重要 所有操作使用管理员权限

尝试启动docker daemon

在windows powershell中输入cd "C:\Program Files\Docker\Docker" 跳转到 Docker Desktop 安装路径

运行命令.\DockerCli.exe -SwitchDaemondocker daemon启动

有没有返回都可以

管理员启动docker desktop

右键管理员运行docker desktop,这个时候这个问题就好了

no matching manifest for windows/amd64 10.0.19045 in the manifest list entries

在拉取镜像的时候,总是拉取不成功,字面意思是没有匹配的windows 镜像,我们不是基于 WSL 不是基于 Ubuntu吗, 很纳闷。突然想起来,我在 Docker Desktop 中有设置过东西,会不会是它原因。

Clip_2024-06-26_20-00-38

正常来说正确的形式应该是上图的样子,我不清楚 desktop-windows 这个什么东西。

Clip_2024-06-26_20-02-53

我选择了这个 Use the WSL 2 based engine 选项,才导致 运行的是desktop-windows东西。后边,我取消了这个选项,配置镜像加速重启后,成功重新拉取镜像。

Clip_2024-06-26_20-07-08

指的提一嘴的是,正常可以用的 Docker Engine 配置长这个样子,如果不是,可以考虑是不是上边说的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://ung2thfc.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://mirror.ccs.tencentyun.com"
]
}

2024-06-26_17-20-59

2024-06-26_17-22-58

2024-06-26_17-23-24

最后,整个过程复盘完成,但是一些中间过程,记不大清,有些遗漏,但问题不大,下次遇到问题解决问题吧!

参考文章

评论