2. 安装Docker:Linux、Windows、macOS 环境下的安装与配置

Docker 的安装其实比大多数人想的要简单,但也最容易在细节上翻车。我刚开始接触时,就因为在 Windows 上没勾对“启用 WSL 2”那个选项,折腾了一下午。说白了,不同平台的安装内核其实就两件事:装好 Docker 引擎,以及配置好它运行的环境。下面咱们一个一个来看。

2.1 安装前的检查清单

不管你在哪个系统上装,先确认几项基础条件。我习惯把这几个点列在便签上,每次换电脑都过一遍:

  • 操作系统版本:Linux 要求内核 3.10+(推荐 4.0+);Windows 需要 10 专业版/企业版/教育版(64 位)或 Windows Server 2016+;macOS 需 10.15 Catalina 以上。
  • 硬件虚拟化已开启:Intel VT-x 或 AMD-V 必须在 BIOS/UEFI 中启用。你在任务管理器的“性能”标签里能看到虚拟化状态。
  • 内存至少 4GB:Docker Desktop 在 Windows 和 macOS 上默认会占用 2GB,做镜像构建时很容易吃掉更多,所以我建议至少留 8GB。
  • WSL 2(仅 Windows):Docker Desktop 现在默认用 WSL 2 后端,跑 Linux 容器效率高很多。你需要提前装好 WSL 2 并设置它为默认版本。
我的小技巧:macOS 用户如果用的是 Apple Silicon (M1/M2) 芯片,一定要下载带 arm64 的 Docker Desktop 安装包,别下成 Intel 版,否则跑容器时会有性能损失甚至报错。

2.2 Linux 环境安装

Linux 上的安装我推荐直接用包管理器,干净,也方便后续维护。Ubuntu/Debian 系用 apt,CentOS/RHEL 系用 yum 或 dnf。记得先卸载旧版本(如果有)。

Ubuntu 22.04 安装示例

下面是我常用的命令序列,每一步都加了注释。你直接复制到终端跑就成。

# 1. 更新包索引并安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. 添加 Docker 官方的 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3. 设置稳定版仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装 Docker 引擎、CLI 和 containerd
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 将当前用户加入 docker 组(免 sudo 跑 docker)
sudo usermod -aG docker $USER
newgrp docker   # 刷新组权限,或者重新登录

# 6. 启动 Docker 并设为开机自启
sudo systemctl enable docker --now

我记得第一次装完忘记加用户组,后面每次都要 sudo,真的很烦。加上之后,重新登录一下就好了。

验证安装

跑个经典 hello-world 容器,能正常输出版本信息和欢迎语就算成。

docker --version
docker run hello-world
避坑指南:如果你在 Linux 虚拟机(比如 VMware Workstation 里的 Ubuntu)上装 Docker,记得检查虚拟机设置是否开启了“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”。我曾经在云服务器上遇到过内核模块 overlay 没加载导致的存储驱动异常,解决方案是 sudo modprobe overlay。

2.3 Windows 环境安装

Windows 上推荐用 Docker Desktop(基于 WSL 2 后端)。我个人不建议用 Docker Toolbox(老古董了),也别手动装 Docker Engine,管理起来太麻烦。

安装步骤

  1. 启用 WSL 2 功能:以管理员身份运行 PowerShell,执行 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart,然后重启。
  2. 设置 WSL 2 为默认版本:wsl --set-default-version 2。
  3. 从 Docker 官网下载 Docker Desktop Installer.exe,双击安装。安装时记得勾选 Use WSL 2 instead of Hyper-V(新版本是默认选项)。
  4. 安装完成后启动 Docker Desktop,它会自动在系统栏显示鲸鱼图标。右键点击图标 → Settings → Resources → WSL Integration,把你要用到的 Linux 发行版(如 Ubuntu-22.04)打开。

配置国内镜像加速

国内拉取 Docker Hub 镜像时经常超时,我建议加上镜像加速器。在 Docker Desktop 的 Settings → Docker Engine 里编辑 JSON:

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}

然后点击 Apply & Restart。你也可以用阿里云或者腾讯云的加速器,生成专属地址。

经验之谈:Windows 下跑 Docker 时,文件共享性能是个坑。如果你把源码放在 Windows 的 D 盘,而容器在 WSL 2 里读写,I/O 会很慢。我的做法是把项目放到 WSL 2 的文件系统里(比如 \\wsl$\Ubuntu\home\user\project),然后用 VS Code 的 Remote - WSL 插件打开它,容器性能提升很明显。

2.4 macOS 环境安装

macOS 上也是用 Docker Desktop。根据你的芯片选对应的安装包。

Intel 芯片与 Apple Silicon

芯片类型 安装包后缀 注意事项
Intel (x86_64) .dmg (amd64) 可直接运行 x86 镜像,但 arm64 镜像需通过 Rosetta 2 模拟
Apple Silicon (M1/M2/M3) .dmg (arm64) 原生运行 arm64 镜像,x86 镜像需加 --platform linux/amd64

安装步骤

  1. 从 Docker Hub 下载对应芯片的 .dmg。
  2. 双击安装,把 Docker.app 拖进 Applications 文件夹。
  3. 首次启动会弹出 Terminal 授权窗口,输入你的 Mac 密码并点击“允许”。
  4. Docker 会在菜单栏启动,图标稳定不转动就代表就绪。

我自己的 M1 MacBook Air 上装的是 arm64 版,日常跑 Node.js、Python 镜像都没问题。只有一次要跑一个老旧的 CentOS 6 镜像,才加 --platform linux/amd64,性能也还行。

配置镜像加速(macOS)

同样在 Docker Desktop 的 Settings → Docker Engine 里添加镜像加速器,和 Windows 一样。别忘了重启生效。

2.5 安装后的通用验证与配置

不管哪个平台,装完后我都习惯跑这几个命令快速验证环境:

docker info            # 查看 Docker 系统信息,检查存储驱动、镜像数等
docker version         # 显示 Client 和 Server 版本号
docker run hello-world # 测试容器跑起来没
docker run -it ubuntu bash  # 如果上面成功,再试一个交互式容器

如果 docker info 里出现 WARNING: No swap limit support 之类的告警,别慌。Linux 下你需要在 /etc/default/grub 里加上 cgroup_enable=memory swapaccount=1 然后更新 grub;Windows 和 macOS 上通常不用管,不影响正常使用。

核心总结:Docker 的安装本质上就是安装 Docker 引擎(服务端)+ 客户端 CLI,外加一个管理工具(Desktop 或 systemctl)。配置方面值得记住的是镜像加速和用户组权限——这两件事我几乎每次在新机器上都要做,顺手写下脚本可以一劳永逸。
Docker 安装与验证流程 检查系统要求 Linux 包管理器安装 Windows Docker Desktop macOS Docker Desktop 配置镜像加速 & 用户组权限 启动 Docker & 运行 hello-world 🔍 确认内核、虚拟化、内存 满足最低要求

2.6 常见安装问题与解决

装的时候总会遇到几个拦路虎,我把碰过最多次的列出来:

  • “Cannot connect to the Docker daemon”:大概率是 Docker 服务没启动。Linux 上跑 sudo systemctl start docker;Windows 和 macOS 确认 Docker Desktop 在运行。
  • “docker: Got permission denied while trying to connect”:用户没加入 docker 组。执行 sudo usermod -aG docker $USER 然后重新登录。
  • Windows 上 WSL 2 报错 “The requested operation is not supported”:检查 BIOS 里虚拟化是否开启,或者在 PowerShell 里执行 bcdedit /set hypervisorlaunchtype auto 后重启。
  • macOS 上 Docker Desktop 一直转圈加载:试试完全退出 Docker,然后 rm -rf ~/Library/Containers/com.docker.docker 再重新启动。注意这会清除所有容器和镜像,慎用。
我曾经掉进过的坑:有一次在 CentOS 7 上装 Docker,yum 源里的 docker 是旧版的,我用官方脚本 curl -fsSL https://get.docker.com | sh 装完后,发现 containerd 版本不兼容导致容器无法启动。后来乖乖走官方文档的 yum-config-manager --add-repo 步骤才解决。所以别偷懒用一键脚本,尤其在生产环境。

安装完成后,你可以开始体验 docker 命令了。我个人建议至少跑一次 docker run -d -p 80:80 --name nginx-test nginx,然后在浏览器打开 http://localhost,能看到 Nginx 欢迎页就说明一切正常。

嗯,先到这。安装是一切的基础,把这一步走稳,后面构建镜像、写 Dockerfile 才不会因为环境问题反复排查。如果你在安装中遇到其他怪问题,欢迎在课程讨论区抛出来,我估计不少人都踩过类似的坑。