在 Windows 10 系统里部署 Docker 环境,官方首推借助 Docker Desktop 来完成,接下来就为你呈上超详细的安装流程与操作指南:
一、安装前的准备事宜
1.1 确认系统适配情况
- Windows 10 版本需求:系统必须是 64 位,要是 Home 版或者 Pro 版,版本得在 2004(内部版本 19041)及以上;要是 Enterprise 版或者 Education 版,版本需在 1909(内部版本 18363)及以上。
- 激活 WSL 2:也就是开启适用于 Linux 的 Windows 子系统功能。要让 WSL 2 在 Windows 系统里顺利运行,硬件得满足这些条件:
- 处理器:必须是 64 位,还得具备二级地址转换(SLAT)能力,想知道自家处理器是否达标,可以下载微软官方的 Coreinfo 工具来检测。
- 内存:系统内存至少得有 4GB。
- 硬件虚拟化支持:此功能需要被开启。
- 下载并安装 Linux kernel 升级包:安装 WSL 2 关联的 Linux 内核升级包时,可参考这个链接:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4—download-the-linux-kernel-update-package 。在 Windows 的命令提示符(cmd)里,输入 systeminfo 指令查看系统类型,根据 x64 或者 ARM64 的结果,下载对应的内核更新包。
1.2 开启硬件虚拟化支持
- 鼠标右键点击开始菜单,选择【应用和功能(F)】,进入【程序和功能】界面,接着点击【启用或关闭 windows 功能】 ,在弹出的窗口里,把【适用于 Linux 的 windows 子系统】和【虚拟机平台】这两项勾选上。
- 点击确认后,系统会提示需要重启电脑,重启耗时可能比较久,大概 15 – 30 分钟,还请耐心等等。
- 重启结束后,打开任务管理器,切换到【性能】这个标签页,瞅瞅虚拟化功能有没有成功启用。
1.3 下载并安装 Linux kernel 升级包
依照上述参考资料链接里的引导,在 Windows 的命令提示符(cmd)中,用 systeminfo 查看系统类型,按照 x64 或者 ARM64 的结果,下载不同的内核更新包,下载好后就可以着手安装了。
二、下载并安装 Docker Desktop
完成前面的准备工作后,就可以从官方指定链接https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe下载 Docker Desktop 的安装程序。下载完毕,双击 “Docker Desktop Installer” 文件,直接点击 “OK” 就可以开始安装了。安装完成之后,重启计算机。等电脑重启好,双击桌面上的 Docker Desktop 图标,就能启动程序了。
三、Windows 系统下玩转 Docker
3.1 借助 PowerShell 操作
- 打开 PowerShell,输入下面这条命令来启动一个镜像:
收起
bash
docker run -d -p 80:80 docker/getting-started
- 用下面这两条命令查看镜像和容器的相关信息:
收起
bash
docker images
docker container ls -a
3.2 利用 Docker Desktop 的图形化界面
除了用命令行操作,还能直接在 Docker Desktop 的图形化界面里对镜像进行各种操作,像查看正在运行的容器,设置镜像加速地址和本地镜像仓库等,都能轻松搞定。
四、巧妙迁移 Docker 镜像存储位置
WSL 2 管理下的 Docker 镜像默认是存放在 C 盘的,要是长时间这么存着,很可能导致 C 盘空间不够用,所以最好把存储位置迁移一下。
4.1 深入了解 WSL 子系统
WSL 是 windows subsystem for linux 的简称,它是 Windows 10 系统里的一个子系统,作用就是能让 Linux 操作系统在 Windows 环境下运行,目前有 WSL 1 和 WSL 2 两个版本。虽说 WSL 和虚拟机都能运行 Linux 系统,但它们之间还是有不少区别的:
- 集成程度:WSL 和 Windows 主机操作系统的融合度更高,在 Windows 的文件管理器里能直接访问 WSL 的文件系统,在 WSL 里也能直接运行 Windows 的可执行文件;虚拟机搭建的是相对独立的环境,想访问主机文件系统,得专门设置一番,便利性远不如 WSL。
- 性能表现:WSL 2 采用的是轻量级虚拟化技术,在文件系统性能这一块,通常比全功能的虚拟机还要出色。
- 资源消耗情况:WSL 消耗的系统资源比全功能虚拟机要少,虚拟机每个实例都得分配固定的内存和磁盘空间,而 WSL 的资源使用情况会根据实际需求动态变化。
- 系统调用兼容性:WSL 1 是把 Linux 系统调用转换成 Windows 系统调用,WSL 2 则是通过提供完整的 Linux 内核来实现更好的兼容性,不过,有些特定的高级 Linux 系统调用在 WSL 里可能没法正常工作;虚拟机提供的是完整的操作系统环境,所有系统调用都能支持。
- 安全隔离效果:虚拟机和主机操作系统的隔离性更好,安全性也就更高;WSL 2 虽说也用到了虚拟化技术,但和主机操作系统的集成度比较高,安全性相对就弱一些。
4.2 迁移 WSL 2 子系统
Docker Desktop 安装的时候,会自动创建两个 WSL 子系统,在命令行里输入
wsl -l -v
就能查看:
docker-desktop
:这个是用来存放程序的,位置在%LOCALAPPDATA%/Docker/wsl
。docker-desktop-data
:主要用来存放镜像,位置在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx
。
这两个 WSL 子系统默认都存放在系统盘,迁移步骤如下:
- 关闭 Docker:先把正在运行的 Docker 应用程序关掉。
- 停止所有子系统:在命令行中输入
wsl --shutdown
,把所有子系统都停下来。 - 导出两个子系统:
收起
bash
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
- 删除现有的子系统:
收起
bash
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
- 重新载入 WSL 2 子系统:在提前创建好的目标路径下,执行下面的命令重新载入。这里要特别注意,
docker-desktop
和docker-desktop-data
不能放在同一个文件夹里,而且必须指定--version 2
,要是不指定,导入的就会是 WSL,而不是 WSL 2,这样一来,Docker Desktop 就没法正常启动了。
收起
bash
wsl --import docker-desktop D:\Docker\docker-desktop\ docker-desktop.tar --version 2
wsl --import docker-desktop-data D:\Docker\docker-desktop-data\ docker-desktop-data.tar --version 2
- 重新启动 Docker Desktop:完成上面这些步骤后,再次启动 Docker Desktop 就可以了。
五、Docker 与 Boot2Docker 大对比
5.1 认识 Boot2Docker
Boot2Docker 是一款轻量级的 Linux 发行版,专门用来运行 Docker 容器,它完全在内存(RAM)里运行,下载量也就 45MB 左右,启动速度相当快。它的核心是一个 boot2docker.iso 镜像文件。在非 Linux 平台,比如 Mac 或者 Windows 系统上,通常得和 virtualbox 搭配使用,先创建一个 Linux 虚拟机,然后在虚拟机上运行 boot2docker 这个 Linux 系统,最后在这个 Linux 系统里运行 Docker。
5.2 对比分析
- 系统要求:Boot2Docker 运行需要借助 virtualbox,对 Windows 版本没啥限制;Docker Desktop 基于 WSL 2,只能在特定版本以上的 Windows 10 系统中安装使用。
- 占用空间:Boot2Docker 更小巧,占用空间特别少;Docker Desktop 相对来说占用的空间就要大一些。
- 功能特性:Boot2Docker 只是提供了一个安装了 Docker 的精简版 Linux 环境,主要适用于开发环境,不太建议用在生产环境中;Docker Desktop 不仅提供完整的 Linux 环境,还有可视化操作界面,搭建 k8s 或 swarm 集群都很方便快捷。
- 维护支持:Boot2Docker 官方已经停止维护了,还建议用户迁移到 Docker Desktop;Docker Desktop 则一直处于持续维护更新的状态。