从第一次在 Ubuntu 上装 Docker 到现在,我前前后后已经折腾过几十次了。这篇文章就是想把这条路上的坑一个个填平,让刚接触 Docker 的小白少走弯路,照着做就能把环境搭起来。教程会从系统准备一直讲到镜像加速、权限配置、常用命令,最后还附上我踩过的那些错误和排查方法,尽量做到每一步都有依据、每一处都讲清楚为什么。
我自己平时的主力开发环境就是 Ubuntu,不管是物理机还是虚拟机都试过,所以下面的步骤在 Ubuntu 20.04、22.04、24.04 上基本都能跑通,部分老版本系统只要内核满足条件也能用。如果你只是想快速体验 Docker,用虚拟机装一个 Ubuntu 也完全没问题,镜像源和网络这块我会专门说明怎么配置,避免下载慢到让人怀疑人生。
1. 安装前的准备工作与思路拆解
1.1 为什么选择 Ubuntu 作为 Docker 的学习环境
Docker 本身是基于 Linux 容器技术实现的,虽然 macOS 和 Windows 也能通过虚拟机套一层来运行,但真正原生的体验还得看 Linux。Ubuntu 是绝大多数教程、生产服务器和云镜像默认采用的发行版,用 Ubuntu 学 Docker,最大的好处就是遇到问题时你能搜到的资料最多、踩过坑的人最多、解决方案也最全。
还有一个现实原因是,Docker 官方对 Ubuntu 的支持非常积极,软件源里直接提供 docker-ce(社区版)的包,安装路径成熟稳定。相比之下,如果一开始就用 CentOS 或者 Debian 的旧版本,虽然也能装,但会遇到额外的不确定性,新手容易把这些系统问题误当成 Docker 问题,排查起来会非常折磨人。
1.2 安装前的系统检查和架构确认
开始之前,建议先确认两件事:系统版本和 CPU 架构。不同架构对应的 Docker 安装包不一样,镜像源的配置方式也有差异。
打开终端,执行下面的命令:
bash复制cat /etc/os-release
uname -m
第一行会显示系统版本信息,比如 Ubuntu 22.04.3 LTS,确认自己是 64 位系统即可,Docker 官方支持的 Ubuntu 版本中,20.04 和 22.04 是当前最常见也最稳定的选择。uname -m 输出的是 CPU 架构,常见三种:
| 输出结果 | 架构说明 | 安装包选择 |
|---|---|---|
| x86_64 | Intel/AMD 64位 | 标准版 docker-ce |
| aarch64 | ARM 64位(树莓派等) | arm64 版 docker-ce |
| armv7l | 32位 ARM | 旧版支持有限,不建议折腾 |
如果你是在 VMware 或 VirtualBox 虚拟机里装的 Ubuntu,大概率是 x86_64,直接按本文后面的步骤走就行。我见过不少人在 ARM 开发板上装 Docker,其实步骤差不多,但镜像源要针对 arm64 做调整,后面我会提到。
1.3 要不要用 Docker Desktop
很多新手看到热词里有 Docker Desktop,会纠结到底装哪个。这里我要直说:在 Ubuntu 上学习 Docker,不推荐用 Docker Desktop。Docker Desktop 在 Linux 上本质上是一个带图形界面的管理工具,它额外引入了一层虚拟机,占用资源更高,而且很多生产环境根本不会用它。命令行版本的 Docker Engine 才是真正的主角,学会它之后,到哪台服务器上你都能无缝衔接。
当然,如果你只是想在 Windows 或 macOS 上体验 Docker,Docker Desktop 是无可争议的首选,那是另一套东西。本文的定位是 Ubuntu 原生环境,所以后面的内容全部围绕 docker-ce 和 docker compose 插件展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 三种主流安装方式详解与选型
2.1 方式一:使用 Docker 官方 apt 源安装(推荐)
这是我最推荐的安装方式,因为它装的是最新稳定版,而且后续升级方便。整个流程分四步。
第一步,更新软件包索引并安装依赖工具:
bash复制sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
这些包是用来做 HTTPS 传输和密钥管理的。lsb-release 能自动识别当前系统版本,后面写 apt 源的时候会用上。
第二步,添加 Docker 官方的 GPG 密钥。官方源要求先导入密钥,否则 apt 会拒绝从该源安装软件,这是安全机制:
bash复制sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
这里--dearmor的作用是把 GPG 密钥从 ASCII 格式转换成二进制格式,因为 Ubuntu 22.04 之后的 apt 默认要求密钥文件放在指定目录并设置好权限。我一开始没加chmod a+r,导致后续 apt update 时报了权限错误,整整折腾了半小时。
第三步,添加 Docker 仓库信息到 apt 源列
