这几天想要个 Docker 环境练练手,因此在 Win10 工作电脑上安装 Docker。根据网上的教程,比如先在 Windows 系统的程序和功能中开启 WSL 和 Hyper-V 虚拟机等步骤,折腾来折腾去总是不对,看网友的帖子,估计是教程适应较旧的版本,但最新版的 docker 的依赖环境有了变化。现在一边安装一边尝试,把安装过程记录下来,提供一条成功路径,以供参考。
一、安装 Docker Desktop for Windows
在官网下载 Docker Desktop for Windows:https://docs.docker.com/desktop/install/windows-install/;
双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。注意:保持默认选择 “Install required Windows components for WSL 2”和“Add shortcut to desktop” 2 个功能复选框。
安装完成后,会提示重启系统。
二、启动及测试 Docker
启动安装程序有两种方式:
- 方式一:双击桌面上的 Docker Desktop,启动安装程序,该方式不能选择安装路径;
- 方式二:在 cmd 里通过命令安装,可以按需设置参数,比如安装目录,更多参数:
1
2
3目标路径需要提前建立,如:D:\Program Files\Docker
常用参数:--wsl-default-data-root:wsl 的分发磁盘位置,因为 Docker 现在采用 WSL2 的方式安装,所以这个配置相当于 Docker 镜像位置
"Docker Desktop Installer.exe" install --installation-dir="D:\Program Files\Docker"短暂初始化等待后,出现了如下错误界面:

根据错误描述(实际是根据网友博客提示,😓),需要手动安装 Linux 内核更新包,在安装后重启即可;
点击上图错误提示中的链接,会跳转到如下界面,按提示下载安装包:

下载完后,进行安装,一路 next(只有一两步),直到完成;

在完成 Linux 内核更新包安装后,点击错误提示里的 Restart 按钮进行 docker 重启,界面如下:

短暂等待后,出现新的错误😢:

选择了”Reset to factory defaults”按钮,然后又变成了“Docker Desktop stopped”,好吧,没找到解决方式,重启了次电脑;
重新启动桌面上 Docker Desktop,弹出确认接受协议窗口,点击接受,然后变成了“Docker Desktop starting…”,一直 starting;
综合网上的解决方式:第一种:Hyper-V 是否开启,有的说需要开启,有的说需要关闭,个人以为新版 docker 通过 wsl2 运行不需要 Hyper-V 所以不需要开启,然后本机的 Hyper-V 未开也谈不到关闭;第二种:执行 wsl 命令,管理员方式运行 PowerShell,执行如下命令:
1
wsl --update

在执行完上述命令后,变成了如下界面,貌似可以了:

点击“Start”开始引导教程(或者点击“skip tutorial”< 跳过教程 >),界面如下:

到此,应该算安装完成并成功启动了;看个人需求,可以选择“skip tutorial”,直接跳过教程。
按照引导顺利完成,如下图:

三、Docker 配置
1. 更改镜像存储位置
Docker Deskop 默认安装在 C 盘,镜像默认在目录 [C:\ 用户 \Administrator\AppData\Local\Docker\wsl\] 下,随着镜像增多,C 盘必然不堪重负,所以要迁移到其他地方,实现步骤如下:
退出 Docker Desktop,右击运行中的 docker,选择[Quit Docker Desktop] 退出软件;执行命令,查看状态:
1
wsl --list -v
多查看几次,直到全部停止,如下图:

停止 WSL
1
wsl --shutdown
导出镜像文件到新的盘符,目录需要提前建立,命令执行时长和镜像文件大小有关,分别执行以下两条命令导出两个镜像:
1
2wsl --export docker-desktop F:\Cache\Docker\wsl\distro\docker-desktop.tar
wsl --export docker-desktop-data F:\Cache\Docker\wsl\data\docker-desktop-data.tar注销原来的镜像,分别执行以下两条命令:
1
2wsl --unregister docker-desktop-data
wsl --unregister docker-desktop将导出的镜像再导回 WSL,并设置挂载目录,命令格式如下:
1
2--vserion 设置版本号 不设置默认为 1
wsl --import <Distribution Name> <InstallLocation> <FileName> --version 2根据上述命令格式,分别执行以下两条命令:
1
2wsl --import docker-desktop-data F:\Cache\Docker\wsl\data\ F:\Cache\Docker\wsl\data\docker-desktop-data.tar --version 2
wsl --import docker-desktop F:\Cache\Docker\wsl\distro\ F:\Cache\Docker\wsl\distro\docker-desktop.tar --version 2重新启动 Docker Desktop,完成;
启动正常后可以删除压缩包.tar 文件。
2. 镜像加速
- 在 Docker Desktop 中,打开设置界面,选择“Docker Engine”:
1
2
3
4"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/"
],
- 运行重启;
- 命令查看修改结果,Registry Mirrors 属性是否有新加入的地址:
1
docker info
- 完成。
四、Docker 和 VMware 的冲突
- 通常情况下,如果同时需要 Docker 和 VMware 或者安卓虚拟机,会遇到 Hyper-V 冲突,无法共存或者说无法共同使用的问题;
- 冲突原因:VMware 或安卓虚拟机需要关闭 Hyper-V;Windows Docker 需要开启 Hyper-V;
- 开启 / 关闭 Hyper-V 的方式,管理员身份打开 Powershell,执行以下命令:
1
2
3
4关闭
bcdedit /set hypervisorlaunchtype off
开启
bcdedit /set hypervisorlaunchtype auto - 经亲身尝试,Docker Desktop(v4.21.1)和 VMware Workstation 16 可以共存,不冲突;操作系统版本:Windows10 专业版(版本:22H2);查询网上资料,需要这三者的版本都高于一定版本才行,在本人去年安装时确实存在冲突的问题。(更新于 2023/7/31)
五、小插曲
- 上面改镜像加速配置,多加了个“https://index.docker.io/v1/”,应用后,就一直 starting 了,悲剧,没办法,然后“Reset to factory defaults”才正常,然后启动正常,但是镜像的位置又回到 C 盘了😂。
原文链接: https://xinghuipeng.pages.dev/2022/09/15/work/container/Windows10安装docker/
版权声明: 转载请注明出处.