1. 安装前的准备工作:别急着敲命令
先聊点实在的。很多人装 Docker,习惯性打开搜索引擎,复制粘贴第一条命令就开干,结果装到一半报错,或者装完了发现版本不对、服务起不来,然后又是一通百度,浪费时间不说,还把系统环境搞得一团糟。我自己早期踩过不少这种坑,所以这篇文章先从准备工作讲起,把该确认的事情都确认好,后面基本就是一路畅通。
1.1 确认你的 Linux 发行版和内核版本
Docker 的核心依赖是 Linux 内核的一些特性,比如 cgroups、namespaces 这些。所以安装前必须确认两件事:你的系统是哪个发行版、内核版本够不够新。
执行下面这条命令:
bash复制cat /etc/os-release
输出结果里主要看 ID、VERSION_ID 和 PRETTY_NAME 这三个字段。比如常见的输出是 ID=ubuntu、VERSION_ID="22.04",或者 ID=centos、VERSION_ID="7"。这决定了你后续该用哪套安装源和安装命令。
再看内核版本:
bash复制uname -r
Docker 官方要求内核版本不低于 3.10。实际上如果你是 CentOS 7 这类老系统,内核一般是 3.10 起的,能跑,但体验不是最好。Ubuntu 22.04 默认内核基本都是 5.15 或更高,完全没问题。如果你用的是那种内核特别老的系统(比如 CentOS 6),那我不建议硬装,要么升级系统,要么考虑换发行版。
还有一个小细节,x86_64 架构基本没问题,但如果你是 ARM 架构的机器(比如树莓派、飞腾、鲲鹏这类),安装源和镜像拉取会有些区别,后面会提到。可以先查一下 CPU 架构:
bash复制uname -m
输出 x86_64 就是标准的 64 位 x86 架构,输出 aarch64 就是 ARM 64 位。
1.2 检查网络连通性和软件源可用性
Docker 安装过程需要从软件源下载软件包,所以网络必须先通。这里说的网络有两层意思:
第一层是你能不能访问你的软件源。比如 Ubuntu 系统,执行 apt update 看有没有报错;CentOS 系统,执行 yum makecache 或者 dnf makecache 看是否正常。这一步其实就是确认系统的软件源配置没毛病。
第二层是 Docker 官方仓库的连通性。因为后续需要通过官方源或者镜像源来安装 Docker,如果这一层不通,你得提前准备替换方案,比如用阿里云镜像源、中科大源,或者直接下载离线安装包。建议提前就配置好国内镜像源,别等到装到一半才发现拉不下来,那就被动了。
检查连通性可以用这条命令:
bash复制curl -I https://mirrors.aliyun.com/docker-ce/
如果能看到返回的 HTTP 状态码信息,说明网络层面没问题。如果卡住不动或者超时,说明你可能需要换个源或者检查网络配置。
1.3 清理系统里残留的旧版 Docker
这个步骤很多人会忽略。如果你以前在机器上装过 Docker、Podman 或者其他容器运行时,直接覆盖安装很可能会出新问题,比如命令冲突、服务启动异常、配置文件被覆盖等。
先把可能残留的旧包列出来看看:
bash复制dpkg -l | grep -i docker # Debian/Ubuntu 系
rpm -qa | grep -i docker # RHEL/CentOS 系
清理旧版 Docker 的卸载命令(Ubuntu/Debian):
bash复制sudo apt-get remove docker docker-engine docker.io containerd runc
CentOS/RHEL 系:
bash复制sudo yum remove docker docker-client docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
需要说明一下,上面这些命令卸载的是旧版本的管理工具和守护进程,默认不会删除你已有的镜像、容器、数据卷。这些默认存放在 /var/lib/docker 目录下。如果你是打算彻底重来,可以把 /var/lib/docker 也清掉:
bash复制sudo rm -rf /var/lib/docker
不过做这一步之前务必想清楚,这是一个不可逆的操作,所有本地镜像和容器数据都会消失。我一般只建议在确认不需要旧数据的时候才删。
1.4 后端存储驱动和系统环境的预检查
Docker 默认用的存储驱动叫 overlay2,这个驱动依赖内核模块 overlayfs。绝大部分现代发行版默认支持,但个别精简版系统或者用了特殊内核的,可能没开。可以提前检查一下:
bash复制cat /proc/filesystems | grep overlay
如果有输出 nodev overlay 之类的信息,就说明内核支持,可以放心。如果没有,那很可能你的系统内核比较精简,装完 Docker 后需要额外调存储驱动配置,比如改成 vfs(性能较差,不推荐)。
另外,如果你用的是带 SELinux 的系统(比如 CentOS、RHEL 默认开启),Docker 安装完后一般能自动处理,但要注意容器内访问文件时可能遇到权限问题。如果不想折腾,可以先临时把 SELinux 设为宽容模式来排除问题:
bash复制sudo setenforce 0
注意这只是临时生效,重启会恢复。生产环境不建议长期关闭 SELinux,更好的做法是搞清楚权限配置规则。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装方式选型:不同场景用不同方案
Docker 的安装方式其实有五六种,刚接触的人可能不知道该怎么选。我根据自己的经验,把主流方式整理成一个对比表格,你看看哪种更适合自己的场景。
| 安装方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 官方源在线安装 | 服务器能正常访问外网的常规场景 | 安装便捷、能拿官方最新版 | 对网络要求高,国内可能较慢 |
| 国内镜像源安装 | 国内云服务器或访问官方源困难的场景 | 速度快、稳定 | 需要额外配置镜像源 |
| 离线安装包 | 内网环境、生产隔离网络 | 不受网络限制,版本可控 | 需要自行下载依赖包,升级麻烦 |
| 发行版自带软件包 | 对版本要求不高、追求稳定 | 与系统集成度高 | 版本可能较旧,功能不全 |
| 官方安装脚本 | 快 |
