Linux 系统(CentOS/Ubuntu)Docker CE 安装全流程详解
详细讲解了在 CentOS 和 Ubuntu 系统上安装 Docker CE 的操作流程。内容包括安装前的系统环境检查、旧版本卸载、依赖包安装、官方仓库配置及镜像加速器设置。分别演示了基于 yum 和 apt 的安装命令,提供了服务启动、开机自启及版本验证方法。此外还列出了常见报错的解决方案,并对比了 CE 与 EE 版本的适用场景,帮助开发者完成从零到一的 Docker 环境搭建。

详细讲解了在 CentOS 和 Ubuntu 系统上安装 Docker CE 的操作流程。内容包括安装前的系统环境检查、旧版本卸载、依赖包安装、官方仓库配置及镜像加速器设置。分别演示了基于 yum 和 apt 的安装命令,提供了服务启动、开机自启及版本验证方法。此外还列出了常见报错的解决方案,并对比了 CE 与 EE 版本的适用场景,帮助开发者完成从零到一的 Docker 环境搭建。

安装前先完成 3 个核心准备,避免后续报错,这是新手最容易忽略但最关键的步骤:
uname -m,输出 x86_64 即符合);uname -r 查看);CentOS 7 和 8 的安装流程基本一致,仅部分依赖包名称略有差异,下面分步骤讲解,每个命令都标注作用。
# 卸载旧版本 Docker(包含 docker、docker-engine、docker.io 等)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
命令作用:清理系统中残留的旧版本 Docker 组件,避免和新版本冲突;yum remove 是 CentOS 的卸载命令,反斜杠 \ 用于换行,让命令更易读。
# 安装 yum-utils(提供 yum-config-manager 工具)、device-mapper-persistent-data、lvm2(Docker 存储驱动依赖)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
命令作用:
yum install -y:-y 表示自动确认安装,无需手动输入 y;yum-utils:包含配置 Docker 仓库的核心工具 yum-config-manager;device-mapper-persistent-data/lvm2:Docker 默认存储驱动 devicemapper 的依赖包。# 配置阿里云 Docker 镜像仓库(比官方仓库下载快)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
命令作用:
yum-config-manager --add-repo:添加 yum 仓库配置;# 安装最新版 Docker CE(包含 docker-ce、docker-ce-cli、containerd.io)
sudo yum install -y docker-ce docker-ce-cli containerd.io
命令作用:
docker-ce:Docker 引擎核心包;docker-ce-cli:Docker 命令行工具;containerd.io:容器运行时(Docker 依赖的底层组件);yum list docker-ce --showduplicates | sort -r 查看版本列表,再执行 sudo yum install -y docker-ce-24.0.6 docker-ce-cli-24.0.6 containerd.io。# 启动 Docker 服务
sudo systemctl start docker
# 设置 Docker 开机自启(避免服务器重启后 Docker 未启动)
sudo systemctl enable docker
命令作用:
systemctl start docker:启动 Docker 守护进程;systemctl enable docker:将 Docker 加入系统开机自启服务,CentOS 7/8 均适用。# 查看 Docker 版本(验证安装)
docker --version
# 运行 hello-world 镜像(验证 Docker 功能正常)
sudo docker run hello-world
验证成功标志:
docker --version 输出类似 Docker version 24.0.6, build ed223bc;docker run hello-world 后,输出'Hello from Docker!'等提示信息,说明 Docker 能正常拉取镜像、运行容器。package docker-ce-xxx requires containerd.io >= 1.6.4:
containerd.io,执行 sudo yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/containerd/containerd.io-1.6.21-3.1.el7.x86_64.rpm,再重新安装 Docker。Failed to start docker.service: Unit not found:
yum list installed | grep docker,若未安装则重新执行安装命令;若已安装,执行 systemctl daemon-reload 刷新服务配置,再启动 Docker。Ubuntu 的安装依赖 apt 包管理器,步骤和 CentOS 类似,但命令有差异,下面逐行拆解。
# 卸载旧版本 Docker 组件
sudo apt-get remove docker docker-engine docker.io containerd runc
命令作用:清理 Ubuntu 系统中旧的 Docker 相关组件,避免冲突;apt-get remove 是 Ubuntu 的卸载命令。
# 更新 apt 包索引(确保最新的软件包信息)
sudo apt-get update
# 安装允许 apt 通过 HTTPS 访问仓库的依赖
sudo apt-get install -y ca-certificates curl gnupg lsb-release
命令作用:
apt-get update:刷新本地软件包缓存;ca-certificates/curl/gnupg:用于验证仓库证书、下载文件、加密验证;lsb-release:用于获取系统版本信息,适配不同 Ubuntu 版本的仓库配置。# 创建密钥存储目录
sudo mkdir -p /etc/apt/trusted.gpg.d
# 下载并添加阿里云 Docker GPG 密钥(国内用户优先)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
命令作用:GPG 密钥用于验证 Docker 仓库的软件包未被篡改,避免安装恶意包。
# 添加 Docker apt 仓库到系统源列表
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
命令作用:
dpkg --print-architecture:自动获取系统架构(如 x86_64);lsb_release -cs:自动获取 Ubuntu 版本代号(如 18.04= bionic、20.04=focal、22.04=jammy);tee:将配置写入 /etc/apt/sources.list.d/docker.list,> /dev/null 表示不输出冗余信息。# 再次更新 apt 索引(加载新添加的 Docker 仓库)
sudo apt-get update
# 安装最新版 Docker CE
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
可选:安装指定版本(比如 24.0.6):
# 查看可用版本
apt-cache madison docker-ce
# 安装指定版本
sudo apt-get install -y docker-ce=5:24.0.6-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.6-1~ubuntu.22.04~jammy containerd.io
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
命令作用:和 CentOS 一致,Ubuntu 同样使用 systemctl 管理服务。
# 查看 Docker 版本
docker --version
# 运行 hello-world 镜像
sudo docker run hello-world
验证成功标志:和 CentOS 一致,输出版本信息和'Hello from Docker!'提示。
E: Package 'docker-ce' has no installation candidate:
cat /etc/apt/sources.list.d/docker.list,确认版本代号(如 22.04 是 jammy)是否正确,重新执行步骤 3-4 后更新 apt 索引。permission denied while trying to connect to the Docker daemon socket:
sudo usermod -aG docker $USER,重启终端或执行 newgrp docker,无需 sudo 即可运行 docker 命令。国内访问 Docker 官方仓库速度慢,配置阿里云/网易云加速器能大幅提升镜像拉取速度,步骤如下(CentOS/Ubuntu 通用):
# 创建 Docker 配置目录
sudo mkdir -p /etc/docker
# 写入加速器配置(阿里云为例,需替换为自己的加速器地址,可在阿里云控制台获取)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的阿里云加速器地址.mirror.aliyuncs.com"]
}
EOF
# 重启 Docker 服务使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速器生效:执行 docker info,在输出中找到 Registry Mirrors,显示配置的加速器地址即成功。
根据版本区别,补充 Linux 系统的选型细节:

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online