在 Windows 系统下安装 Docker
文章目录
在 Windows 系统下安装 Docker1.打开 VT(Virtualization Technology)功能1.1.检查 CPU 是否支持硬件虚拟化1.2.启用 VT 功能 2.安装 WSL(Windows Subsystem for Linux)2.1.安装 WSL2.2.忘记 WSL 中 Linux 发行版的密码怎么办?2.3.跨 Windows 和 Linux 文件系统工作跨文件系统的文件存储和性能在 Windows 文件资源管理器中查看 WSL 目录注意事项文件系统的更多信息请查阅官网 3.安装 Docker4.WSL 使用方法补充4.1.更新和升级包4.2.WSL 的基本命令4.3.在 WSL 中进行开发所需要做的配置(按需)4.4.WSL 详细文档 5.踩坑经验总结
1.打开 VT(Virtualization Technology)功能
1.1.检查 CPU 是否支持硬件虚拟化
按下Ctrl
+ Shift
+ Esc
打开任务管理器,在任务管理器中选择性能选项卡,在性能选项卡中选择CPU选项卡,在 CPU 选项卡中查看是否存在虚拟化
或Hyper-V
字样(如下图所示)。如果存在则说明你的设备支持硬件虚拟化,反之则反。
此外,还可以按下win
+ R
打开命令行窗口,输入systeminfo
命令查看系统信息,如果系统信息的最后存在Hyper-V 要求
这一项,则说明你的设备支持硬件虚拟化,反之则反。
1.2.启用 VT 功能
重启电脑进入 BIOS 设置找到 VT 功能选项(其名字可能是Hyber-V
、Vanderpool
、SVM
、AMD-V
、Intel Virtualization Technology
、VT-X
等),并将其开启。此外,如果看到了AMD IOMMU
或 Intel VT-d
选项,也需要将它们开启。在 BIOS 中进行保存并退出,然后重启电脑,打开任务管理器查看虚拟化
是否变为已启用
状态。 2.安装 WSL(Windows Subsystem for Linux)
WSL
是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机。
2.1.安装 WSL
以下是 WSL
的安装教程,该教程由微软官网的安装教程整理所得,具体步骤如下:
PowerShell
或cmd
。输入wsl --list --online
命令,查看可用的 Linux 发行版。输入wsl --install -d <Linux发行版>
命令,安装你想要安装的 Linux 发行版。例如,要安装 Ubuntu 系统则输入命令:wsl --install -d Ubuntu
。安装完成后需要重启计算机。使用 WSL 安装 Linux 发行版的过程完成后,可以在开始菜单
打开该 Linux 发行版,并可以为其创建快捷方式。 打开该 Linux 发行版后,系统将要求你为 Linux 发行版创建“用户名”和“密码”。 此用户名和密码特定于安装的每个单独的 Linux 发行版,与 Windows 用户名无关。输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的创建用户名和密码后,该帐户将作为该 Linux 发行版的默认用户,并将在启动时自动登录。此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令(不建议直接用 root 用户进行操作,仅在必要的时候使用 sudo
即可 )。在 WSL 上运行的每个 Linux 发行版相互独立。 每当添加 Linux 发行版、重新安装或重置时,都必须重新配置一个 Linux 用户帐户。 2.2.忘记 WSL 中 Linux 发行版的密码怎么办?
打开PowerShell
或 cmd
,输入wsl --list --verbose
命令,查看已安装的 Linux 发行版的详细信息,找到忘记密码的 Linux 发行版的名称。输入wsl -d <Linux发行版> -u root
命令进入 WSL 中的 Linux 发行版的根目录。例如,要进入 Ubuntu 系统的根目录,则输入命令:wsl -d Ubuntu -u root
。输入passwd <username>
命令,按提示重置密码。其中 <username>
是你想要重置密码的用户名。输入exit
命令,在PowerShell
或 cmd
中关闭 WSL。 2.3.跨 Windows 和 Linux 文件系统工作
跨文件系统的文件存储和性能
若想获得最快的性能速度,需要将在 Linux 中使用的文件存储在 WSL 文件系统中;将在 Windows 中使用的文件存储在 Windows 文件系统中。建议不要跨操作系统使用文件,除非有这么做的特定原因。
例如:在存储 WSL 项目文件时:
使用 Linux 文件系统根目录:/home/<user name>/Project
。而不使用 Windows 文件系统根目录:/mnt/c/Users/<user name>/Project$
或 C:\Users\<user name>\Project
。 在 WSL 命令行的文件路径中看到 /mnt/
时,表示你正在使用已装载的驱动器。 因此,Windows 文件系统 C:/ 驱动器
(如:C:\Users\<user name>\Project
) 在 WSL 命令行中装载时,其路径将显示为:/mnt/c/Users/<user name>/Project$
。 允许将项目文件存储在装载的驱动器上,但如果将其直接存储在 \\wsl$
驱动器上,可以获得更高的性能速度。
在 Windows 文件资源管理器中查看 WSL 目录
可以在 WSL 的 Linux 终端上输入以下命令来使用 Windows 文件资源管理器打开当前所在目录:
explorer.exe .# 或powershell.exe /c start .
此外,还可以在 Windows 文件资源管理器的地址栏中输入 \\wsl$
,以查看所有可用的 Linux 发行版及其根文件系统。
注意事项
在跨系统访问文件的时候需要注意大小写问题,一般情况下:
Windows 文件系统中,文件名和目录名不区分大小写。 FOO.txt 和 foo.txt 将被视为等效文件。Linux 文件系统中,文件名和目录名会区分大小写。 FOO.txt 和 foo.txt 将被视为不同文件。文件系统的更多信息请查阅官网
官网链接:跨 Windows 和 Linux 文件系统工作
3.安装 Docker
目前 Windows 上不支持安装 Docker Engine,仅支持安装 Docker Desktop。安装完 WSL 以后,直接在Docker 官网上下载 Docker Desktop 的安装包,然后按提示安装即可。安装完成后,打开 Docker Desktop,即可看到以下界面,该界面包含一个左侧的侧边栏(红框区域)。看到这个侧边栏则表示 Docker Desktop 安装成功。
如果之前的 WSL 安装存在问题,可能会导致 Docker Desktop 无法正常运行,其运行界面会缺少侧边栏,如下图所示。此时表示 Docker Desktop 安装失败,需要按上述步骤重新安装 WSL。
此外,还可以在 Windows 命令行或 WSL 中输入 docker run hello-world
命令测试 Docker 是否安装成功。如果出现以下输出,则表示 Docker 安装成功。
4.WSL 使用方法补充
4.1.更新和升级包
Windows 不会自动更新或升级 Linux 发行版中的软件包,所以请使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:sudo apt update && sudo apt upgrade
。其中:
sudo apt update
命令会更新本地数据库中的软件包列表。它会从软件源服务器上获取最新的软件包列表,并更新本地的索引文件。
而sudo apt upgrade
命令会检查本地数据库中的软件包列表,并升级所有已安装的软件包到最新版本。
4.2.WSL 的基本命令
WSL 的基本命令可在此处查看。
4.3.在 WSL 中进行开发所需要做的配置(按需)
设置 WSL 开发环境在 WSL 上使用 VS Code在 WSL 上使用 Git在 WSL 上使用数据库在 WSL 上配合 VS Code 使用 Docker在 WSL 上为深度学习使用 GPU 加速在 WSL 上运行 Linux GUI 应用在 WSL 上安装 NodeJS4.4.WSL 详细文档
关于 WSL 的详细文档可在此处查看:WSL 文档
5.踩坑经验总结
打开 WSL 的时候提示wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
这是因为在打开 WSL 之前,已经在 Windows 下打开了梯子。但是,实测 WSL 可以通过梯子连到 Docker Hub,所以出现这个提示不用管。 运行 Docker pull 命令时出现 error response from daemon
这样的网络连接错误。 我刚开始以为是 问题 1 导致连不上 Docker Hub,然后就在网上查了各种各样的方法,都以失败告终。后来机缘巧合之下,在命令行中输入 docker login -u [用户名]
命令进行了一次在命令行中的登录,之后再运行 docker pull
命令就正常了。?像是玄学一样?。