记一次不太顺利的Docker重装

#记录工作

一、前言

默认情况下,Windows系统上Docker Desktop 安装在 :C:\Program Files\Docker\Docker;

目前正常下载能下载到最新版本是到v4.39.0,实际已经能找到v4.40.0版本来进行修复安装;

建议尽量不要改变Docker的默认安装位置。

二、踩坑记录

(一)踩坑一

"/DIR="命令指定安装位置(新手请避坑,仅供记述避免踩坑,不足之处请多多指教)

之前我一直用"/DIR="命令指定Docker的安装目录到D:\Program\Docker目录,然后稳定的运行了一段时间后,Docker不能启动引擎了,可以打开Docker Desktop,但是各种折腾也没能再正常工作;

复制代码
#进入Docker安装程序的下载位置
cd /d E:\Downloads\Programs
#复制完整文件名
Docker Desktop Installer.exe
#修改安装命令为(引号要保留):.\+"完整文件名"+空格/DIR="期望安装路径"
.\"Docker Desktop Installer.exe" /DIR="D:\Program\Docker"

(二) 踩坑二

"mklink /j"命令指定安装位置(新手请避坑,仅供记述避免踩坑,不足之处请多多指教)

后来我又尝试了"mklink /j"命令,尝试将Docker的C盘安装目录通过创建链接的方式指定到D盘D:\Program Files\Docker目录;

还把

复制代码
C:\Users\<用户名>\.docker

C:\Users\<用户名>\AppData\Local\Docker

这两个文件夹也通过"mklink /j"命令分别指定到:

复制代码
D:\Program\.docker

D:\Program\Docker

完整的命令和流程记录如下(新手请避坑,仅供记述避免踩坑,不足之处请多多指教):

复制代码
1、Docker安装路径设置
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

#安装后启动,然后查找并记录下Docker在C盘生成的文件夹路径:
C:\Users\love\.docker
C:\Users\love\AppData\Local\Docker

2、备份C盘中的.docker文件夹
#然后分别复制一份到其它地方备份,比如备份到E:\Downloads\Other\
 #用命令复制备份或手动复制粘贴进行备份:
C:\Users\love\.docker
robocopy "C:\Users\love\.docker" "E:\Downloads\Other\.docker" /E
#然后的目录结构:
"E:\Downloads\Other\.docker"

3、备份C盘AppData\Local中的Docker文件夹
 #用命令复制备份或手动复制粘贴进行备份:
C:\Users\love\AppData\Local\Docker
robocopy "C:\Users\love\AppData\Local\Docker" "E:\Downloads\Other\Docker" /E
#然后的目录结构:
"E:\Downloads\Other\Docker"

4、为C:\Users\love\.docker创建链接
C:\Users\love\.docker
准备创建硬链接
 #通过直接复制源文件夹的形式在目标文件夹生成同名文件夹:
robocopy "C:\Users\love\AppData\Local\Docker" "D:\Program\.docker" /E
删除目标路径:
rmdir /s /q "C:\Users\love\.docker"
删除链接路径:
rmdir /s /q "D:\Program\.docker"
mklink /J "C:\Users\love\.docker" "D:\Program\.docker"

5、为C:\Users\love\AppData\Local\Docker创建链接
C:\Users\love\AppData\Local\Docker
准备创建硬链接
 #通过直接复制源文件夹的形式在目标文件夹生成同名文件夹:
robocopy "C:\Users\love\AppData\Local\Docker" "D:\Program\Docker" /E
删除目标路径:
rmdir /s /q "C:\Users\love\AppData\Local\Docker"
删除链接路径:
rmdir /s /q "D:\Program\Docker"
mklink /J "C:\Users\love\AppData\Local\Docker" "D:\Program\Docker"

6、将备份的文件夹复制到目标目录
robocopy "E:\Downloads\Other\.docker" "D:\Program\.docker" /E
robocopy "E:\Downloads\Other\Docker" "D:\Program\Docker" /E

结果么, Docker Desktop打开后一直无法启动引擎,然后也是各种报错,最后是通过翻找官方文档,找到v4.40.0版本然后安装后才修复。

修复后发现,"mklink /j"命令指定到的D:\Program Files\Docker目录已经被清空了,并且删除了"mklink /j"符号链接,恢复安装到默认的位置C:\Program Files\Docker\Docker。

三、重装及修复

通过安装更高版本修复。

V4.39.0覆盖安装没能修复,通过覆盖安装V.4.40.0版本实现修复。

修复后,

C:\Users\<用户名>\.docker

C:\Users\<用户名>\AppData\Local\Docker

这两个目录的"mklink /j"命令硬链接没有被撤消,仍然有效:

但安装目录已重置为 C:\Program Files\Docker\Docker。

这是在PyCharm的项目文件夹中,用终端运行命令的截图,可以看到Docker命令已经能正常运行。

四、记录小结

(一)一般情况下,不要改动Docker的默认安装路径;

(二)C盘用户文件夹下的.docker文件夹和C盘用户文件夹下的AppData\Local\Docker(镜像储存文件夹)可以通过"mklink /j"命令安全指定到其他盘符;

(三)但是,镜像储存文件夹的修改和指定最好用Docker Desktop界面操作相对会更简单一些;

(四)如果出现问题,除了一些修复命令和方法外,还可以通过用更新的版本覆盖安装的方式修复;

(五)如果Docker Desktop运行状态正常,但终端中无法顺利执行docker的拉取命令,那就要尝试更换不同的终端,推荐使用PyCharm中的终端,虽然在PyCharm中也是手动选择的终端路径,但PyCharm集成的功能似乎能解决一些纯终端运行命令拉取异常的错误,比如输出网络或代理配置错误等。(或者可以尝试vs code)

(六)检查代理网络和配置文件中代理地址条目的配置情况,手动编辑的代理文件时常会因为网络原因或条目失效或者端口问题导致镜像拉取失败;

(七)配置变更后尽量及时重启Docker及相关服务,桌面右下角隐藏图标里有Docker图标,鼠标右键可以看到"restart"重启服务按钮。实在不行就重启计算机,重启后须等待Docker相关服务启动并稳定运行之后,再执行拉取镜像的操作。

V.4.40.0版本及全部发行版本下载页面:

全部版本 发行说明 |Docker 文档

相关推荐
Y淑滢潇潇1 小时前
RHCSA Linux 系统创建文件
linux·运维·服务器
奔跑的废柴1 小时前
Jenkins学习(B站教程)
运维·学习·jenkins
曹瑞曹瑞1 小时前
Linux制作deb安装包
linux·运维
YZF_Kevin1 小时前
centos安装dashboard详细步骤
linux·运维·centos
kobe_OKOK_2 小时前
CentOS 部署 Nodejs
linux·运维·centos
如若1232 小时前
《在 Ubuntu 22.04 上安装 CUDA 11.8 和 Anaconda,并配置环境变量》
linux·运维·ubuntu
源代码•宸2 小时前
Visual Studio Code SSH 连接超时对策( keep SSH alive)
运维·服务器·ide·经验分享·vscode·ssh
butiehua02023 小时前
Docker 命令大全:从入门到精通
docker·云原生·eureka
半新半旧3 小时前
Nginx 负载均衡案例配置
运维·nginx·负载均衡
码上飞扬3 小时前
深入探索 Linux Top 命令:15 个实用示例
linux·运维·服务器