跳到主要内容Docker 跨平台安装与配置实战指南 | 极客日志Shell / Bash
Docker 跨平台安装与配置实战指南
介绍 Docker 在 Ubuntu 20.04、CentOS 8/9 Stream 及 Windows 11 平台的安装流程。涵盖环境准备、依赖配置、镜像源优化、目录修改及常见报错解决。重点包括 Linux 下使用官方源安装 Docker CE,Windows 下开启虚拟化与 WSL2 配置 Docker Desktop,以及国内镜像源配置方法,帮助开发者快速完成容器环境搭建。
道系青年30 浏览 Docker 跨平台安装与配置实战指南
一、Docker 基础认知
1.1 什么是 Docker
Docker 是一个开源的应用容器引擎,能将应用程序及其依赖打包到一个可移植的容器中,实现「一次构建,到处运行」。无需担心环境差异导致的运行失败,大幅提升开发、测试、部署效率。
1.2 支持的平台版本
Docker 分为 Server 版本(用于服务器,无图形界面)和 Desktop 版本(用于桌面端,有图形界面),不同平台的支持情况如下:
Server 版本(常用 Linux 系统)
| Server 版本 | 支持的 CPU 架构 | 推荐系统版本 |
|---|
| Ubuntu | x86_64/amd64、arm64/aarch64、arm(32-bit) | Ubuntu 20.04 LTS、22.04 LTS |
| CentOS | x86_64/amd64、arm64/aarch64 | CentOS 8 Stream、CentOS 9 Stream |
| 其他(Debian/Fedora 等) | x86_64/amd64、arm64/aarch64 等 | 对应系统最新稳定版 |
Desktop 版本(桌面端,适合开发)
- Docker Desktop for Linux:适用于 Linux 桌面系统
- Docker Desktop for Mac:适用于 macOS(Apple Silicon/Intel 芯片)
- Docker Desktop for Windows:适用于 Windows 10/11
二、Ubuntu 20.04 Docker Server 安装
本文以 Ubuntu 20.04 LTS 为例,全程使用 root 用户操作(普通用户需在命令前加 sudo),步骤清晰。
2.1 安装前准备
2.1.1 确认系统版本和 CPU 架构
首先确认系统版本符合要求,CPU 架构支持 Docker(主流 x86_64 均支持):
uname -a
cat /etc/os-release
正常输出示例(CPU 为 x86_64,系统为 20.04 LTS):
Linux 139-159-150-152 5.4.0-100-generic
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"
2.1.2 卸载旧版本(新服务器可跳过)
如果服务器之前安装过 Docker 旧版本,需先卸载,避免冲突;新购买的云服务器无 Docker,可直接跳过此步骤:
apt-get remove docker docker-engine docker.io containerd runc -y
apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
-rf /var/lib/docker
-rf /var/lib/containerd
-rf /data/var/lib/docker
-rf /etc/docker/daemon.json
sudo
sudo
sudo
rm
sudo
rm
sudo
rm
sudo
rm
2.2 开始安装 Docker
2.2.1 安装依赖工具
安装 curl 工具(用于下载 Docker 源配置),确保后续命令正常执行:
sudo apt-get install curl -y
2.2.2 配置 Docker 官方下载源
默认 Ubuntu 的源可能下载速度慢,配置 Docker 官方源(稳定且更新及时),步骤如下:
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.2.3 安装 Docker 核心组件
更新 apt 源缓存,然后安装 Docker CE(社区版,免费且常用)及相关插件:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
安装过程中若提示「是否继续」,直接按回车即可,等待安装完成(约 1-5 分钟,取决于服务器网络)。
2.3 安装后配置
2.3.1 启动 Docker 服务并设置开机自启
Docker 安装完成后,默认不会自动启动,需手动启动并设置开机自启,避免重启服务器后 Docker 失效:
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
正常输出中会显示「active (running)」,说明 Docker 服务启动成功。
2.3.2 验证 Docker 安装成功
通过查看 Docker 版本、运行 hello-world 镜像,验证安装是否成功(hello-world 是 Docker 官方测试镜像,体积小,适合快速验证):
docker version
sudo docker run hello-world
- docker version 输出中,Client 和 Server 均有版本信息;
- 运行 hello-world 后,输出「Hello from Docker!」,并显示 Docker 运行的完整流程。
2.4 进阶配置
安装完成后,建议进行镜像源优化和 Docker 目录修改,提升使用体验。
2.4.1 优化 Docker 镜像源(解决拉取镜像慢、失败问题)
默认 Docker 镜像源为国外的 Docker Hub,国内访问速度慢,甚至会出现拉取失败,需配置国内镜像源。根据服务器所属厂商选择对应源:
sudo vi /etc/docker/daemon.json
{"registry-mirrors":["https://mirror.ccs.tencentyun.com"]}
{"registry-mirrors":["https://docker.m.daocloud.io","https://dockerhub.timeweb.cloud","https://huecker.io"]}
sudo systemctl daemon-reload
sudo systemctl restart docker
2.4.2 修改 Docker 默认目录(解决磁盘空间不足问题)
Docker 默认安装目录为/var/lib/docker,后续下载的镜像、运行的容器都会存放在这里,若该目录磁盘空间较小,会导致后续无法下载大型镜像。建议修改为磁盘空间较大的目录:
mkdir -p /data/var/lib/docker
sudo vi /etc/docker/daemon.json
{"data-root":"/data/var/lib/docker", "registry-mirrors":["https://mirror.ccs.tencentyun.com"]}
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
验证目录修改成功:执行「ll /data/var/lib/docker」,若显示 Docker 相关子目录(如 containers、image 等),说明修改成功。
三、CentOS 8/9 Stream Docker Server 安装
CentOS 系统安装流程与 Ubuntu 类似,重点差异在依赖安装和源配置,以下是完整步骤(以 CentOS 8 Stream 为例)。
3.1 安装前准备
3.1.1 确认系统版本和 CPU 架构
cat /etc/os-release
uname -a
注意:CentOS 7 已停止更新,不推荐使用,优先选择 CentOS 8 Stream 或 9 Stream。
3.1.2 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /data/var/lib/docker
sudo rm -rf /etc/docker/daemon.json
3.2 开始安装 Docker
3.2.1 配置 Docker yum 源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.2.2 安装 Docker 核心组件
sudo yum install -y docker-ce
sudo yum install -y docker-ce-23.0.1 docker-ce-cli-23.0.1 containerd.io
3.3 安装后配置(与 Ubuntu 一致)
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
docker version
sudo docker run hello-world
3.4 进阶配置(镜像源 + 目录修改)
与 Ubuntu 完全一致,参考本文「2.4 进阶配置」步骤,镜像源和目录修改的配置文件、命令完全通用,此处不再重复。
四、Windows 11 Docker Desktop 安装(GUI 版,适合开发)
Windows 11 安装 Docker Desktop 需要开启虚拟化、安装 WSL2(Windows Subsystem for Linux),步骤较多,重点注意虚拟化开启和 WSL2 配置。
4.1 安装前准备(必做,否则安装失败)
4.1.1 开启电脑虚拟化
Docker Desktop 依赖虚拟化技术,需先开启电脑的虚拟化功能:
- 打开「任务管理器」→ 切换到「性能」标签 → 查看「虚拟化」状态,若显示「已启用」,则跳过此步骤;若显示「已禁用」,需继续操作。
- 开启虚拟化:按下 Win+I,打开「设置」→ 搜索「启用或关闭 Windows 功能」→ 勾选「Windows 虚拟机监控程序平台」「虚拟机平台」「适用于 Linux 的 Windows 子系统」→ 点击「确定」→ 重启电脑生效。
4.1.2 安装 WSL2(Windows 子系统)
Docker Desktop 在 Windows 上运行依赖 WSL2,需安装并配置 WSL2:
- 以「管理员身份」打开 PowerShell(右键开始菜单,选择「Windows PowerShell (管理员)」)。
- 执行命令,更新 WSL 到最新版本:
wsl --update
- 设置 WSL 默认版本为 2:
wsl --set-default-version 2
- 通过微软应用商店安装 Ubuntu(推荐 18.04.5 LTS 或 20.04 LTS),安装完成后启动 Ubuntu,按照提示创建 UNIX 用户名和密码(无需与 Windows 用户名一致),启动成功即完成 WSL2 配置。
4.2 安装 Docker Desktop
- 下载 Docker Desktop 安装包:访问 Docker 官方下载地址(https://www.docker.com/products/docker-desktop/),下载「Docker Desktop for Windows」安装包(Docker Desktop Installer.exe)。
- 安装 Docker Desktop:双击安装包,按照提示下一步即可,安装过程中无需修改默认配置,等待安装完成后重启电脑。
- 启动 Docker Desktop:重启电脑后,点击桌面「Docker Desktop」快捷方式,首次启动可能需要等待 1-2 分钟,启动成功后,桌面右下角会出现 Docker 图标(无报错即正常)。
4.3 验证安装成功
打开 PowerShell,执行以下命令,验证 Docker 是否安装成功:
docker version
docker run hello-world
正常输出「Hello from Docker!」,说明安装成功。
4.4 配置镜像源(解决 Windows 拉取镜像慢问题)
Windows 11 Docker Desktop 配置镜像源步骤:
- 打开 Docker Desktop,点击右上角「Settings」(设置)。
- 在左侧菜单中找到「Docker Engine」,编辑右侧配置文件,添加国内镜像源:
{ "experimental": false, "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerhub.timeweb.cloud", "https://huecker.io" ] }
- 点击「Apply & Restart」,等待 Docker 重启,镜像源配置生效。
五、常见报错及解决方案
安装和使用 Docker 过程中,新手容易遇到各种报错,以下是常见报错及解决方案。
报错 1:Docker 服务启动失败(Job for docker.service failed)
报错原因
配置文件错误(如 daemon.json 格式错误)、旧版本残留、端口被占用。
解决方案
journalctl -eu docker
sudo rm -rf /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl start docker
报错 2:拉取镜像失败(request canceled while waiting for connection)
报错原因
网络受限、镜像源不可用、DNS 解析失败、代理配置错误。
解决方案
- 检查网络连通性:ping 8.8.8.8,若不通,检查服务器网络/防火墙。
- 重新配置国内镜像源(参考本文「进阶配置」中的镜像源配置)。
- 若为 DNS 解析失败,修改系统 DNS:
echo "nameserver 223.5.5.5" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
报错 3:卸载 Docker 时提示「Unable to locate package docker-engine」
报错原因
服务器未安装过 docker-engine 版本,无需处理。
解决方案
直接跳过该步骤,执行后续的 purge 命令(彻底卸载)即可。
报错 4:Windows 11 Docker 启动失败(WSL 2 installation is incomplete)
报错原因
WSL2 未安装或未配置成功,Docker Desktop 依赖 WSL2 运行。
解决方案
重新执行本文「4.1.2 安装 WSL2」步骤,确保 WSL2 安装成功,且默认版本为 2,重启电脑后再启动 Docker。
六、总结
本文详细讲解了三大主流平台(Ubuntu 20.04、CentOS 8/9 Stream、Windows 11)的 Docker 完整安装流程,包含安装前准备、核心安装步骤、安装后配置、进阶优化及常见报错解决。
- 安装前务必确认系统版本和 CPU 架构符合要求,避免版本不兼容;
- 国内用户一定要配置国内镜像源,否则会出现拉取镜像慢、失败问题;
- Windows 11 安装必须开启虚拟化和 WSL2,缺一不可;
- 修改配置文件后,必须重新加载配置并重启 Docker,配置才会生效。
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online