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 并设置它为默认版本。
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
overlay 没加载导致的存储驱动异常,解决方案是 sudo modprobe overlay。
2.3 Windows 环境安装
Windows 上推荐用 Docker Desktop(基于 WSL 2 后端)。我个人不建议用 Docker Toolbox(老古董了),也别手动装 Docker Engine,管理起来太麻烦。
安装步骤
- 启用 WSL 2 功能:以管理员身份运行 PowerShell,执行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart,然后重启。 - 设置 WSL 2 为默认版本:
wsl --set-default-version 2。 - 从 Docker 官网下载
Docker Desktop Installer.exe,双击安装。安装时记得勾选 Use WSL 2 instead of Hyper-V(新版本是默认选项)。 - 安装完成后启动 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。你也可以用阿里云或者腾讯云的加速器,生成专属地址。
\\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 |
安装步骤
- 从 Docker Hub 下载对应芯片的
.dmg。 - 双击安装,把 Docker.app 拖进 Applications 文件夹。
- 首次启动会弹出 Terminal 授权窗口,输入你的 Mac 密码并点击“允许”。
- 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 上通常不用管,不影响正常使用。
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再重新启动。注意这会清除所有容器和镜像,慎用。
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 才不会因为环境问题反复排查。如果你在安装中遇到其他怪问题,欢迎在课程讨论区抛出来,我估计不少人都踩过类似的坑。