终极指南:全面精通 Docker 在 Ubuntu、CentOS 及 Windows 上的安装与实战配置
在当今飞速发展的软件开发与运维(DevOps)领域,Docker 已然成为一项不可或缺的革命性技术。它通过“容器化”这一轻量级的虚拟化方案,将应用程序及其所有依赖项打包到一个可移植的容器中,从而确保了从开发、测试到生产环境的高度一致性与可靠性。无论您是初涉容器世界的开发者,还是寻求标准化部署流程的运维工程师,掌握 Docker 的安装与配置都是您的必修课。
本指南将以前所未有的深度,为您提供一份跨越三大主流操作系统——Ubuntu、CentOS 和 Windows——的 Docker 安装与高级配置的终极手册。我们将不仅仅是罗列命令,而是深入剖析每一步操作背后的原理,解读每一个配置项的意义,并结合源文件中的高清截图,为您带来身临其境的学习体验,确保您在读完本文后,能够充满自信地驾驭 Docker 的安装与维护。
第一章:Ubuntu 环境下的 Docker 之旅——从零到精通
Ubuntu,作为广受欢迎的 Linux 发行版,是运行 Docker 的理想平台。我们将从环境检查开始,一步步完成 Docker 的安装、验证,并进行至关重要的实战化配置。
第一节:准备工作——确认系统环境
在安装任何软件之前,首要任务是确认我们的系统是否满足其要求。Docker 对 Ubuntu 的版本和 CPU 架构都有明确的支持。
1. 支持的 Ubuntu 版本与 CPU 架构
根据官方文档和社区实践,Docker 稳定支持以下 Ubuntu 的长期支持(LTS)版本及部分新版本:
- Ubuntu Jammy Jellyfish 22.04 (LTS)
- Ubuntu Focal Fossa 20.04 (LTS)
- Ubuntu Bionic Beaver 18.04 (LTS)
同时,Docker 支持主流的 x86_64 (或称 amd64) 和 arm64 (aarch64) CPU 架构。
2. 动手实践:检查您的系统
首先,我们通过 uname -a 命令来确认 CPU 架构。这个命令会打印出详细的内核信息。
uname -a 执行后,您会看到类似下图的输出。图中的 x86_64 明确告诉我们,这是一台 64 位的 x86 架构机器,完全符合 Docker 的安装要求。如果显示为 aarch64,则代表是 ARM 架构,同样受支持。
接下来,使用 cat /etc/*release* 命令来确定我们的 Ubuntu 发行版版本。
cat /etc/*release* 如下图所示,命令输出清晰地展示了 DISTRIB_ID=Ubuntu 和 DISTRIB_RELEASE=20.04,确认我们使用的是 Ubuntu 20.04 LTS 版本,在官方支持范围内。

第二节:清理环境——卸载旧版本 Docker
为了避免潜在的冲突和未知问题,最佳实践是在安装前彻底卸载系统上可能存在的旧版本 Docker。如果您的服务器是全新的,可以跳过此步。
执行以下命令来移除旧的 Docker 相关软件包:
sudoapt-get remove docker docker-engine docker.io containerd runc 如果系统上没有安装过这些包,它会提示未找到软件包,这是正常现象。更彻底的清理,尤其是当你想要一个“纯净”的重装时,可以使用 purge 命令,它会连同配置文件一起删除:
sudoapt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y 最后,手动删除 Docker 的数据目录,这些目录存储了镜像、容器、卷等核心数据。请谨慎操作,确保没有需要保留的数据。
sudorm -rf /var/lib/docker sudorm -rf /var/lib/containerd # 如果您曾修改过数据目录,请根据实际情况删除# 例如: sudo rm -rf /data/var/lib/docker```#### **第三节:核心步骤——配置 Docker 的 APT 软件源** 我们不推荐直接使用 Ubuntu 默认源中的 Docker,因为它可能不是最新版本。正确的做法是添加 Docker 官方(或国内镜像)的软件源,以确保能安装和更新到最新的稳定版 Docker。 **1. 安装依赖工具** 我们需要 `curl` 来下载 GPG 密钥。使用以下命令确保它已被安装: ```bash sudoaptinstallcurl -y 安装过程的截图如下所示,展示了 curl 及其依赖的安装过程。


2. 添加 Docker 官方 GPG 密钥
GPG (GNU Privacy Guard) 密钥用于验证软件包的来源是否可信,防止下载到被篡改的恶意软件。
首先,创建一个用于存放密钥环的目录:
sudomkdir -m 0755 -p /etc/apt/keyrings 然后,从 Docker 官方网站下载 GPG 密钥,并使用 gpg --dearmor 命令将其转换为 APT 适用的格式,最后存放到我们刚刚创建的目录中。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg curl -fsSL:-f表示失败时不显示 HTTP 错误,-s静默模式,-S显示错误信息,-L跟随重定向。|: 管道符,将curl的输出作为gpg命令的输入。sudo gpg --dearmor --yes -o ...:--dearmor将 ASCII 格式的密钥转换为二进制格式,--yes自动同意覆盖,-o指定输出文件。
执行成功的截图如下:

3. 设置 Docker 的 APT 仓库
现在,我们将 Docker 的软件仓库地址添加到一个新的源列表文件中。这个命令看起来复杂,但逻辑清晰:
echo\"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable"|sudotee /etc/apt/sources.list.d/docker.list > /dev/null 让我们分解这个命令:
echo "...": 打印引号内的字符串。deb: 表示这是一个 Debian 软件包仓库。[arch=$(dpkg --print-architecture)]: 指定架构。dpkg --print-architecture会自动获取当前系统的架构(如amd64)。[signed-by=...]: 指定用于验证此仓库软件包签名的 GPG 密钥路径。https://download.docker.com/linux/ubuntu: Docker 官方仓库的 URL。$(lsb_release -cs): 自动获取当前 Ubuntu 版本的代号(如focal)。stable: 表示我们想要使用稳定版的软件通道。| sudo tee ...: 使用tee命令配合sudo,将echo的输出同时写入文件/etc/apt/sources.list.d/docker.list和标准输出(通过> /dev/null丢弃标准输出)。这样做是因为重定向符号>无法直接与sudo很好地配合来写入需要权限的文件。
执行后,一个新的源文件 docker.list 就被创建了,如下图所示。

4. 更新软件包索引
添加了新的软件源后,必须运行 apt update 来刷新本地的软件包列表,这样系统才能知道新仓库中有哪些可用的软件包。
sudoapt update 第四节:执行安装与验证
万事俱备,只欠东风。现在,我们可以正式安装 Docker Engine 了。
1. 安装 Docker Engine
执行以下命令,安装 Docker 社区版(CE)及其相关组件:
sudoapt-getinstall docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y docker-ce: Docker 社区版引擎(核心服务)。docker-ce-cli: Docker 命令行工具。containerd.io: 一个业界标准的容器运行时,Docker 底层依赖于它。docker-buildx-plugin: 提供高级构建功能的插件。docker-compose-plugin: 集成了 Docker Compose 功能到 Docker CLI 中。
2. 解决国内网络问题(备选方案)
如果您在中国大陆,访问 Docker 官方源可能会很慢或失败。此时,强烈建议使用国内的镜像源,例如阿里云。
- 卸载残留(如果之前尝试失败):
sudo apt remove docker docker-engine docker.io containerd runc - 安装依赖:
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release - 更新并安装:
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
添加阿里云的 Docker 仓库:
echo"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"|sudotee /etc/apt/sources.list.d/docker.list > /dev/null 添加阿里云的 GPG 密钥:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg |sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 3. 验证安装
安装完成后,输入 docker 命令。如果出现 Docker 的帮助信息和命令列表,说明 CLI 工具安装成功。

然而,此时直接运行 docker ps 等命令,您可能会遇到下图所示的权限错误或连接失败的提示。

这是因为 Docker 的核心服务(守护进程/daemon)可能没有正常启动。
第五节:启动 Docker 服务与排错
1. 查看服务日志
当服务启动失败时,第一步是查看日志以定位问题。journalctl 是 systemd 系统下的标准日志查看工具。
journalctl -eu docker -e: 跳转到日志的末尾,最新的日志在最下面。-u docker: 只显示docker.service这个单元的日志。
日志可能会提示错误原因,例如下图中的日志就指出了配置文件或启动环境的问题,并提醒要确保服务是由 systemd 管理的。

2. 管理 Docker 服务
systemd 是现代 Linux 系统的服务管理器。我们使用 systemctl 命令来控制 Docker 服务。
查看服务状态:
sudo systemctl status docker 设置开机自启:
sudo systemctl enable docker 启动 Docker 服务:
sudo systemctl start docker 重新加载配置(修改服务配置后执行):
sudo systemctl daemon-reload 下图展示了 systemctl status docker 的输出,active (running) 的绿色字样表明 Docker 服务已成功启动并正在运行。

下图是执行 enable 命令的截图,它会创建一个符号链接,确保系统下次启动时会自动运行 Docker。

3. 最终验证
现在,Docker 服务已经健康运行,我们可以通过 docker version 和 docker info 来做最终的验证。
docker info: 提供 Docker 系统范围的详细信息,包括容器和镜像数量、存储驱动、数据根目录、配置的镜像源等。
docker info 
docker version: 显示客户端和服务器(引擎)的版本信息。
docker version ```至此,您已在 Ubuntu 系统上成功安装并启动了 Docker!
第六节:Ubuntu 实战经验——高级配置
仅仅安装成功是不够的,为了在生产环境中高效、稳定地使用 Docker,我们还需要进行一些关键的配置。
1. 修改 Docker 镜像源
默认情况下,docker pull 命令会从位于国外的 Docker Hub 拉取镜像,速度非常慢。配置国内的镜像加速器是必须的操作。
Docker 的配置主要通过 /etc/docker/daemon.json 这个文件进行。如果该文件不存在,请手动创建它。
sudovim /etc/docker/daemon.json 在文件中添加以下内容,其中包含了多个常用的国内镜像地址。Docker 会按顺序尝试,直到有一个成功为止。
{"registry-mirrors":["https://docker.xuanyuan.me","https://hub-mirror.c.163.com","https://registry.docker-cn.com"]}修改配置后,必须重新加载配置并重启 Docker 服务才能生效:
sudo systemctl daemon-reload sudo systemctl restart docker 重启后,再次运行 docker info,在输出的末尾,您应该能看到刚刚配置的 Registry Mirrors,如下图所示,证明配置成功。

2. 修改 Docker 数据目录
Docker 的默认数据根目录是 /var/lib/docker。这个目录会存放所有下载的镜像、创建的容器、卷等,会迅速增长,很容易占满根分区(/)的空间。因此,在生产环境中,通常会将其迁移到一个独立的大容量磁盘分区。
我们通过修改 daemon.json 文件来实现。
第三步:重启并验证
sudo systemctl daemon-reload sudo systemctl restart docker 再次执行 docker info,您会看到 Docker Root Dir 已经变成了我们指定的新路径 /data/var/lib/docker。

此时查看新目录,会发现 Docker 已经自动在其中创建了所需的文件和子目录结构。

第二步:修改配置文件
编辑 /etc/docker/daemon.json,在已有内容的基础上,添加 data-root 字段。
{"registry-mirrors":["https://docker.xuanyuan.me","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],"data-root":"/data/var/lib/docker"}注意:如果旧目录 /var/lib/docker 中已有数据,您需要在停止 Docker 服务后,将数据手动迁移到新目录,例如使用 rsync 命令。
第一步:创建新目录
假设我们有一个挂载在 /data 的大磁盘,我们为其创建一个新目录。
sudomkdir -p /data/var/lib/docker 第二章:CentOS 平台 Docker 安装详解
CentOS 作为另一款企业级 Linux 发行版,同样是部署 Docker 的热门选择。其安装过程与 Ubuntu 类似,但使用的是 yum 包管理器。
第一节:环境确认
1. 支持的 CentOS 版本与 CPU
Docker 支持 CentOS Stream 8 和 CentOS Stream 9。请注意,CentOS 7 已于2024年6月停止维护,不再获得 Docker 官方的更新支持。支持的 CPU 架构同样是 x86_64 和 arm64。
2. 检查系统信息
使用 cat /etc/*release* 查看系统版本。下图标示了这是一台 CentOS 7.9 系统的机器(作为演示,但建议您使用更新的版本)。

使用 uname -a 确认 CPU 架构,下图显示为 x86_64。

第二节:卸载旧版并配置 YUM 源
1. 清理旧版本
如果系统上可能存在旧版 Docker,使用 yum remove 进行卸载:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 下图显示系统上未找到这些包,表明环境很干净。

同样,您也可以执行更彻底的 purge 和 rm 操作来清理配置文件和数据目录。
2. 配置 Docker 的 YUM 仓库
首先,安装 yum-utils,它提供了 yum-config-manager 工具,方便我们添加和管理 YUM 仓库。
sudo yum install -y yum-utils 
然后,使用 yum-config-manager 添加 Docker 的 YUM 仓库。这里我们直接使用速度更快的阿里云镜像源:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 该命令执行后,会在 /etc/yum.repos.d/ 目录下创建一个名为 docker-ce.repo 的文件。

我们可以查看这个文件的内容,其中定义了仓库的名称、基础 URL 以及 GPG 密钥的位置,确保了软件包的安全性。

第三节:安装与启动 Docker
1. 执行安装
配置好 YUM 源后,安装 Docker 非常简单:
sudo yum install -y docker-ce 由于我们使用了阿里云的源,安装过程会非常迅速。下图展示了安装成功的界面。

2. 启动并验证服务
与 Ubuntu 一样,我们使用 systemctl 来管理 Docker 服务。
# 启动服务sudo systemctl start docker # 设置开机自启sudo systemctl enable docker # 查看状态sudo systemctl status docker 下图显示 Docker 服务在 CentOS 上也成功启动并运行。

最后,通过 docker version 和 docker info 进行最终验证。
docker info

docker version

可以看到,默认的数据目录 /var/lib/docker 也已经被创建。

第四节:CentOS 实战配置
在 CentOS 上配置镜像加速和数据目录,方法与 Ubuntu 完全相同,都是通过编辑 /etc/docker/daemon.json 文件。
1. 创建并编辑配置文件
sudovim /etc/docker/daemon.json 2. 写入配置
下面是一个同时配置了镜像加速和自定义数据目录的 daemon.json 示例:
{"registry-mirrors":["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech"],"data-root":"/data/var/lib/docker"}请确保新目录 /data/var/lib/docker 已提前创建。
下图展示了最终的配置文件内容:

3. 重启服务并验证
sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker 服务重启成功的状态图:

最后,通过 docker info 检查配置是否生效。可以看到,镜像源和数据根目录都已成功修改。

并且,新的数据目录下已经生成了 Docker 所需的文件。

第三章:Windows 下的 Docker Desktop 安装指南
对于 Windows 用户,Docker 官方提供了 Docker Desktop,它通过 Windows Subsystem for Linux 2 (WSL 2) 技术,在 Windows 系统上提供了无缝的原生 Linux 容器体验。
第一节:开启 Windows 虚拟化支持
1. 检查并开启 CPU 虚拟化
Docker Desktop 依赖于硬件虚拟化技术。您需要进入电脑的 BIOS/UEFI 设置,确保 Intel VT-x 或 AMD-V 等虚拟化选项已被启用。
在 Windows 任务管理器(Ctrl+Shift+Esc)的“性能”标签页下,可以查看虚拟化是否已开启。

2. 启用 Windows 功能
按下 Win+I 打开设置,搜索并进入“启用或关闭 Windows 功能”。确保勾选以下两个组件,然后重启电脑:
- 虚拟机平台 (Virtual Machine Platform)
- 适用于 Linux 的 Windows 子系统 (Windows Subsystem for Linux)

第二节:安装与配置 WSL 2
WSL 2 是 Docker Desktop 的核心后端,它提供了一个完整的 Linux 内核。
1. 更新并设置 WSL 2
以管理员身份打开 PowerShell 或 Windows Terminal。
设置 WSL 2 为默认版本:
wsl --set-default-version 2 
更新 WSL 内核:
wsl --update 
查看 WSL 版本:
wsl --status 
2. 安装 Linux 发行版
打开 Microsoft Store,搜索并安装一个 Linux 发行版,例如 Ubuntu。这是 Docker Desktop 将要使用的 Linux 环境。

安装完成后,首次启动会要求您设置一个用户名和密码。

第三节:安装 Docker Desktop
1. 下载并运行安装程序
访问 Docker 官方网站下载 Docker Desktop for Windows 的安装程序。

右键点击下载的 .exe 文件,选择“以管理员身份运行”。在配置界面,通常保持默认选项即可,它会自动使用 WSL 2 并创建桌面快捷方式。

安装过程会自动解压和安装所需文件。

安装完成后,启动 Docker Desktop。首次启动可能需要一些时间来初始化 WSL 2 后端。
2. 验证与配置镜像源
当 Docker Desktop 右下角的鲸鱼图标静止不动时,表示已成功启动。打开 PowerShell 或 CMD,输入 docker info。

为了提升镜像下载速度,我们需要配置国内镜像源。
- 右键点击系统托盘中的 Docker 图标,选择
Settings。 - 在左侧导航栏选择
Docker Engine。 - 在右侧的 JSON 编辑器中,添加
registry-mirrors字段。
{"builder":{"gc":{"defaultKeepStorage":"20GB","enabled":true}},"experimental":false,"registry-mirrors":["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live"]}如下图所示,将镜像地址数组粘贴进去,然后点击右下角的 Apply & Restart。

Docker Desktop 将会重启并应用新的配置。至此,您在 Windows 上的 Docker 环境也已准备就绪,可以开始您的容器化开发之旅了。
结论
通过本篇万字长文的深度剖析,我们不仅系统地学习了在 Ubuntu、CentOS 和 Windows 这三个主流操作系统上安装 Docker 的标准流程,更重要的是,我们深入理解了每一步操作背后的原理和重要性。从环境检查、旧版本清理,到添加官方软件源、处理国内网络问题,再到服务启动、状态验证,以及最为关键的镜像加速器和数据目录的实战配置,每一个环节都配有详尽的解释和直观的截图。
掌握 Docker 的安装与配置,是开启云原生和现代化应用开发大门的金钥匙。希望这篇详尽的指南能成为您工具箱中的得力助手,为您在容器化的道路上扫清障碍,扬帆远航。