
Docker 安装教程Windows/Mac/Linux 一次说清引言“为什么我电脑上装不了 Docker”——问这个问题的人多数不是安装步骤错了而是前置条件没满足。Windows 上要先有 WSL2 或 Hyper-VmacOS 要看芯片是 Intel 还是 Apple SiliconLinux 上要配 apt 源和 docker 组权限。同一个 Docker三个平台三种玩法教程混着看最容易翻车。这篇文章把 Windows、macOS、Linux 三条路线都写一遍重点讲 Windows 的 WSL2 前置和镜像加速配置——这两块是踩坑重灾区。最后用 hello-world 收尾验证跑通这一条你的 Docker 环境就齐了。文中版本号以官方文档为准。先分清Docker Desktop 和 Docker Engine很多人没搞清这两个东西就开始装下载的压根不是自己要的。先看对比再动手对比项Docker DesktopDocker Engine是什么带图形界面的完整套件纯命令行引擎适用平台Windows / macOSLinux桌面系统内核不支持原生容器图形界面有能看容器和日志无商业许可大型企业需付费以官方文档为准开源典型场景桌面开发机服务器、CI 环境一句话总结Windows 和 macOS 装 Docker DesktopLinux 装 Docker Engine。前者给你图形面板和配套工具后者追求干净轻量。下面按平台走。WindowsWSL2 是绕不开的前置环境要求Windows 10 2004 以上或 Windows 1164 位已开启 WSL2 和虚拟机平台功能BIOS 里开启了虚拟化Intel VT-x / AMD-V第一步启用 WSL2Docker Desktop 的 Windows 版默认推荐 WSL2 后端。WSL2 没就绪Docker 装了也跑不起来这是 Windows 上最常见的翻车点。先确认状态# 以管理员身份打开 PowerShellwsl--status# 若已启用预期输出类似# 默认版本2# 默认发行版Ubuntu# 如果还没有 WSL一条命令安装自动启用 WSL2 并装 Ubuntuwsl--install# 装完重启电脑再检查版本wsl--version# 预期输出WSL 版本 2.x.xwsl --install提示未启用适用于 Linux 的 Windows 子系统要么是系统版本太旧要么是 BIOS 虚拟化没开。虚拟化去 BIOS 里找 Intel Virtualization Technology 或 SVM Mode开启后重启。这一步很多人卡住后面常见问题里再展开。Windows 老版本2004 之前的 1903/1909 等没有wsl --install命令需要手动启用两个 Windows 功能适用于 Linux 的 Windows 子系统、虚拟机平台勾选后重启再装 WSL2 内核更新包。操作路径控制面板 → 程序 → 启用或关闭 Windows 功能。旧系统走这个流程一样能配好只是步骤多几步具体以官方文档为准。第二步安装 Docker Desktop到 Docker 官网 docker.com 下载 Docker Desktop for Windows双击安装。安装向导里有两个选项Use WSL 2 instead of Hyper-V默认勾选保持勾选、Add shortcut to desktop可留可去。装完启动首次运行会提示 WSL 内核更新或登录账号按提示走。登录完成后右下角任务栏的鲸鱼图标变成绿色说明守护进程起来了。第三步验证# 重新打开一个终端PowerShell 或 cmddockerversion# 预期输出分 Client 和 Server 两段# Client: Docker Engine - Community# Version: 27.x.x# Server: Docker Engine - Community# Engine:# Version: 27.x.xdocker version的 Server 段有输出说明引擎在正常跑。Server 段报错或为空绝大多数情况是 WSL2 没配好回到第一步检查。确认虚拟化已开启WSL2 依赖 CPU 虚拟化。Windows 任务管理器 → 性能 → CPU右下角能看到虚拟化已启用。命令行也可以查systeminfo|findstr /iHyper-V# 预期输出中 Hyper-V 相关项显示已检测到虚拟机监控程序说明虚拟化已开显示未启用就进 BIOS重启按 Del 或 F2 进设置找 Intel Virtualization TechnologyIntel或 SVM ModeAMD开启后保存重启。不同品牌笔记本菜单名略有差异找不到就搜你的机型 BIOS 虚拟化。这一步不做WSL2 和 Docker 都起不来是 Windows 装机第一坑。WSL2 后端还是 Hyper-V 后端Docker Desktop 的 WSL2 后端和 Hyper-V 后端只能二选一。推荐 WSL2启动快、资源占用低、和 WSL 里的 Linux 发行版无缝共享文件。选 Hyper-V 的场景很窄确实需要跑 Windows 容器或者机器不支持 WSL2。日常开发无脑选 WSL2 即可别纠结。macOS选对芯片版本macOS 装 Docker Desktop 即可关键在区分芯片架构Apple SiliconM1/M2/M3…下载 Mac with Apple chip 版本arm64。Intel 芯片下载 Mac with Intel chip 版本x86_64。装错版本不是不能跑但性能明显拉胯很多镜像要模拟 x86 架构慢得肉眼可见。下载 .dmg 拖进 Applications打开按提示授权步骤很少。# 验证dockerversion# Client 与 Server 两段都有 Version 字段即正常首次启动会申请权限安装辅助组件、创建 /var/run/docker.sock 符号链接等弹窗别直接关允许就行。权限弹窗被忽略是 macOS 上 Docker 起不来的常见原因之一。macOS 上如果之前装过旧版 Docker Toolbox已停止维护卸载时容易留残留。确认which docker指向的旧命令是否还在残留的话手动删掉旧目录再装新版。装完docker --version能输出版本号就说明新命令已经生效。资源占用方面macOS 上 Docker Desktop 默认不低Apple Silicon 版本明显好于 Intel 版。如果只是偶尔用一下、不介意命令行也可以考虑 colima 这类第三方容器运行时替代开源免费不少开发者拿它当轻量方案只是生态和文档不如官方完整。Linuxapt 一行行来Linux 没有图形版的 Docker Desktop主流做法是装 Docker Engine走官方 apt 源最稳。下面以 Ubuntu/Debian 系为例# 卸载可能存在的旧版本没有就跳过报错无所谓sudoapt-getremovedockerdocker-engine docker.io containerd runc# 安装依赖sudoapt-getupdatesudoapt-getinstall-yca-certificatescurlgnupg# 添加 Docker 官方 GPG keysudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpg# 添加 apt 软件源x86_64 架构echodeb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu$(./etc/os-releaseecho$VERSION_CODENAME)stable|sudotee/etc/apt/sources.list.d/docker.list/dev/null# 安装 Dockersudoapt-getupdatesudoapt-getinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 验证sudodockerrun hello-world装完后有个高频操作当前用户直接敲docker会报 “permission denied while trying to connect to the Docker daemon socket”因为默认只有 root 和 docker 组的用户能用。解决# 把当前用户加入 docker 组sudousermod-aGdocker$USER# 重新登录或执行 newgrp docker 立即生效验证免 sudodockerrun hello-worldLinux 安装最容易翻车的是 apt 源签名验证失败多半是脚本里自动取的$VERSION_CODENAME不对比如发行版代号特殊。把$(. /etc/os-release echo $VERSION_CODENAME)手动换成实际的代号如 jammy、noble再试。Docker 装好后是一个 systemd 服务。sudo systemctl enable docker设置开机自启多数发行版默认已启用sudo systemctl status docker看运行状态。改完 daemon.json 用sudo systemctl restart docker重启。排查服务问题先journalctl -u docker看服务日志这个命令比瞎猜高效得多。升级与卸载Docker Desktop 会自动提示升级点一下就行。Docker Engine 的升级就是重新跑一遍 apt 安装命令版本自动跟进。彻底卸载# Linux 卸载 Docker Enginesudoapt-getpurge docker-ce docker-ce-cli containerd.io# 清理残留目录存着所有镜像和容器数据确认不需要再删sudorm-rf/var/lib/dockerWindows 和 macOS 在添加或删除程序里卸载 Docker Desktop卸载时按需选择是否保留数据卷。换机迁移时docker save导出镜像、docker export导出容器数据卷则直接拷贝目录这是常规搬家路线。hello-world 验证统一的验收标准三个平台装完验收方式完全一样# 拉取并运行官方测试镜像dockerrun hello-world# 预期输出# Unable to find image hello-world:latest locally# latest: Pulling from library/hello-world# ...# Hello from Docker!# This message shows that your installation appears to be working correctly.看到 “Hello from Docker!” 这行安装就算彻底成功。这个镜像只有几 MB专门做冒烟测试。任何环境能跑通它都说明能拉镜像、能建容器、能执行这条链路是通的。如果docker run hello-world提示平台不匹配或拉取超时先别怀疑环境检查镜像加速源是不是失效了换一个再试。hello-world 拉不动绝大多数是网络问题不是 Docker 本身的问题。镜像加速国内使用必配不配加速源docker pull拉官方镜像会非常慢甚至超时。Docker Desktop 在 Settings → Docker Engine 里编辑 JSON{registry-mirrors:[https://docker.m.daocloud.io,https://docker.1ms.run]}改完点 Apply restart。Linux 引擎则改 /etc/docker/daemon.json没有就新建以官方文档为准sudomkdir-p/etc/dockersudotee/etc/docker/daemon.jsonEOF { registry-mirrors: [https://docker.m.daocloud.io] } EOF# 重启 Dockersudosystemctl restartdocker镜像加速源的可用性变化很快失效就换一批建议配两个以上留余量。地址是否可用以官方文档为准。换源之后可以docker pull nginx试一下速度几秒内拉完说明源生效。注意镜像加速只影响拉取不影响 push——推送到自己的仓库还要单独登录对应仓库地址。三个容易忽略的小问题Windows 家庭版能不能装 Docker能。家庭版没有 Hyper-V但 Docker Desktop 的 WSL2 后端本来就不依赖 Hyper-V只要系统是 Windows 10 2004 以上、虚拟化在 BIOS 里开着装好 WSL2 就能跑。网上家庭版必须先开 Hyper-V的说法是旧版 Docker 时代的遗留现在已不再适用。卡在这一步的多半是虚拟化没开回到 BIOS 检查。代理环境里拉镜像失败怎么查公司网络一般要走代理Docker 不一定认系统代理需要单独配Docker Desktop 在设置里填代理地址Linux 引擎给 dockerd 配置 HTTP_PROXY 环境变量。症状很有迷惑性——docker pull 一直卡着不动最后报超时换加速源也没用这时候先怀疑代理别急着重装。磁盘告急也是新手常碰到的。镜像、容器、卷、构建缓存四样都会占空间docker system df一眼看明白谁是大头docker system prune清理悬空镜像和已停止的容器docker system prune -a连没在用的镜像一起删。清理类命令执行前先看清楚列表再动手删错镜像最多重拉删错卷数据就真没了。常见问题速查问题原因解决办法WSL2 未启用Docker 启动失败系统功能没开管理员 PowerShell 跑wsl --install重启虚拟化未开启BIOS 里 VT-x/SVM 关闭进 BIOS 开启重启Docker Desktop 一直转圈起不来WSL 内核过旧wsl --update更新内核拉镜像超时 / 极慢默认官方源配置镜像加速源permission denied 访问 socket用户不在 docker 组sudo usermod -aG docker $USER后重登no matching manifest for windows/amd64镜像不支持当前平台确保处于 Linux 容器模式Hyper-V 与 VMware/VirtualBox 冲突虚拟化平台竞争二选一Docker 用 WSL2 后端可规避图标灰 / 无法连接守护进程守护进程没起来或 WSL 崩了右键图标看诊断wsl --shutdown重启 WSL 再试下面是 Docker 安装失败的排查流程图从docker run hello-world是否成功开始逐层定位问题成功失败permission denied否是拉取超时 / 极慢否是WSL2 相关报错否是虚拟化相关报错否是docker run hello-world 是否成功✅ 安装成功环境就绪报错类型判断用户是否在 docker 组sudo usermod -aG docker $USER重新登录后重试检查守护进程systemctl status docker或右键图标查看诊断镜像加速是否配置配置 registry-mirrors 加速源Docker Desktop 或 /etc/docker/daemon.json检查代理配置Docker Desktop 设置或 dockerd HTTP_PROXYWSL2 是否启用管理员 PowerShell 执行 wsl --install重启后 wsl --version 验证WSL 内核是否过旧wsl --update 更新内核虚拟化是否开启进 BIOS 开启 VT-x / SVM Mode重启后 systeminfo 验证检查 Hyper-V 与 VMware/VirtualBox 冲突Docker 改用 WSL2 后端规避小结Docker 安装的成败一半在前置条件Windows 的 WSL2、macOS 的芯片版本、Linux 的 docker 组。另一半在国内网络镜像加速源是刚需。这两块解决掉docker run hello-world打出 “Hello from Docker!”你的环境就绪了。还有一个通用的判断标准环境装完先跑通最小用例再继续。Docker 的最小用例就是 hello-world跑通它后面的学习都建立在可靠基础上。下一篇是 Docker 入门实战镜像、容器、Compose 三个概念和第一个 Dockerfile从装到用无缝衔接。