Docker 完全指南 / 02 - 安装与配置
02 - 安装与配置
在 Linux、macOS、Windows 上安装 Docker,配置镜像加速源,启用 Rootless 模式。
2.1 安装方式概览
| 平台 | 推荐方式 | 工具 |
|---|---|---|
| Ubuntu / Debian | APT 仓库 | docker-ce |
| CentOS / RHEL / Fedora | DNF/YUM 仓库 | docker-ce |
| macOS | 官方安装包 | Docker Desktop |
| Windows | 官方安装包 | Docker Desktop + WSL2 |
| 通用 Linux | 便捷脚本 | get.docker.com |
docker-ce vs docker.io:
docker-ce是 Docker 官方维护的社区版;docker.io是 Debian/Ubuntu 仓库中的版本,通常版本较旧。推荐使用docker-ce。
2.2 Ubuntu 安装(推荐)
2.2.1 卸载旧版本
# 卸载可能存在的旧版本
sudo apt-get remove -y docker docker-engine docker.io containerd runc
# 清理旧数据(可选,谨慎操作)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
2.2.2 安装依赖并添加仓库
# 更新包索引
sudo apt-get update
# 安装依赖
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加 Docker 官方 GPG 密钥
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
# 添加 Docker APT 仓库
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 Engine
# 更新包索引
sudo apt-get update
# 安装 Docker Engine + CLI + containerd + Buildx + Compose 插件
sudo apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# 验证安装
docker --version
# Docker version 27.x.x, build xxxxxxx
docker compose version
# Docker Compose version v2.x.x
2.2.4 将当前用户加入 docker 组
# 创建 docker 组(通常已存在)
sudo groupadd docker
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 重新加载组权限(或重新登录)
newgrp docker
# 验证无需 sudo 即可运行
docker run hello-world
安全提示: 加入
docker组的用户等同于拥有 root 权限。生产环境建议使用 Rootless 模式或 sudo。
2.3 CentOS / RHEL / Fedora 安装
2.3.1 添加仓库
# 安装 yum-utils
sudo yum install -y yum-utils
# 添加 Docker 官方仓库
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2.3.2 安装并启动
# 安装 Docker Engine
sudo yum install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证
sudo docker run hello-world
2.3.3 Fedora 特殊说明
Fedora 默认使用 dnf,且可能预装 podman:
# 如果存在 podman-docker 冲突,先移除
sudo dnf remove -y podman-docker
# 使用 dnf 安装
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
2.4 macOS 安装
Docker Desktop for Mac
1. 访问 https://www.docker.com/products/docker-desktop/
2. 下载对应芯片的安装包:
- Apple Silicon (M1/M2/M3/M4): Docker Desktop for Mac with Apple Silicon
- Intel: Docker Desktop for Mac with Intel chip
3. 双击 .dmg 文件,将 Docker 拖入 Applications
4. 启动 Docker Desktop,等待图标变为稳定状态
验证安装
# 在终端中验证
docker --version
docker compose version
# 运行测试容器
docker run --rm hello-world
资源配置
在 Docker Desktop → Settings → Resources 中配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| CPUs | 4+ | 分配的 CPU 核心数 |
| Memory | 8 GB+ | 内存大小 |
| Swap | 1 GB | 交换空间 |
| Disk image size | 64 GB+ | 虚拟磁盘大小 |
| Disk image location | 默认 | 存储位置 |
2.5 Windows 安装
前置条件
1. Windows 10/11 64-bit (Home/Pro/Enterprise/Education)
2. 启用 WSL 2 (Windows Subsystem for Linux 2)
3. 启用硬件虚拟化 (BIOS 中开启 VT-x/AMD-V)
安装步骤
# 1. 以管理员身份打开 PowerShell,启用 WSL 2
wsl --install
# 2. 重启电脑
# 3. 下载并安装 Docker Desktop for Windows
# https://www.docker.com/products/docker-desktop/
# 4. 启动 Docker Desktop
# Settings → General → Use the WSL 2 based engine
# 5. 配置 WSL 2 集成
# Settings → Resources → WSL Integration
# 选择要启用 Docker 的 WSL 2 发行版
验证安装
# 在 PowerShell 或 WSL 终端中
docker --version
docker compose version
docker run --rm hello-world
2.6 便捷脚本安装
适用于测试/开发环境快速安装:
# 一键安装(官方脚本)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 安装完成后清理
rm get-docker.sh
# 将用户加入 docker 组
sudo usermod -aG docker $USER
newgrp docker
警告: 便捷脚本仅建议在开发/测试环境使用。生产环境请使用官方仓库方式安装,以便精确控制版本。
2.7 配置镜像加速源
由于网络原因,中国大陆访问 Docker Hub 较慢,建议配置镜像源(Mirror Registry)。
2.7.1 配置 daemon.json
# 创建或编辑 daemon 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
EOF
2.7.2 重启 Docker 服务
# 重新加载配置
sudo systemctl daemon-reload
# 重启 Docker
sudo systemctl restart docker
# 验证镜像源配置
docker info | grep -A 5 "Registry Mirrors"
2.7.3 常用镜像源列表
| 镜像源 | 地址 | 说明 |
|---|---|---|
| 1ms.run | https://docker.1ms.run | 社区维护 |
| xuanyuan.me | https://docker.xuanyuan.me | 社区维护 |
| Docker Hub 官方 | https://registry-1.docker.io | 默认,无需配置 |
注意: 镜像源地址可能会变动。如果某个源不可用,请尝试其他源或搜索最新可用地址。
2.7.4 macOS / Windows 配置
在 Docker Desktop 中配置:
Settings → Docker Engine → 在 JSON 中添加:
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
点击 "Apply & Restart"
2.8 Rootless 模式
Rootless 模式让非 root 用户运行 Docker daemon,提升安全性。
2.8.1 前置条件检查
# 检查内核版本(需要 >= 5.11 或启用 user namespaces)
uname -r
# 检查 uid/gid 映射
cat /etc/subuid
cat /etc/subgid
# 如果没有配置,添加映射
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER
2.8.2 安装 Rootless Docker
# 停止系统级 Docker 服务
sudo systemctl disable --now docker.service docker.socket
# 安装 Rootless 所需依赖
sudo apt-get install -y uidmap dbus-user-session fuse-overlayfs slirp4netns
# 安装 Rootless Docker
dockerd-rootless-setuptool.sh install
# 设置环境变量(加入 ~/.bashrc)
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
2.8.3 启用 systemd 服务
# 启用用户级 systemd 服务
systemctl --user enable docker
systemctl --user start docker
# 开启 lingering(允许用户在未登录时运行服务)
sudo loginctl enable-linger $(whoami)
2.8.4 Rootless 模式的限制
| 功能 | 标准模式 | Rootless 模式 |
|---|---|---|
| 端口 < 1024 | ✅ | ❌(需额外配置) |
| cgroup 管理 | ✅ | 部分支持 |
| overlay2 存储驱动 | ✅ | ✅(需 fuse-overlayfs) |
| AppArmor | ✅ | ❌ |
| 性能 | 基准 | 略低(5-10%) |
| 嵌套容器 | ✅ | ⚠️ 有限制 |
2.9 安装后验证
2.9.1 完整验证清单
# 1. 检查 Docker 版本
docker version
# 2. 查看系统信息
docker info
# 3. 运行测试容器
docker run --rm hello-world
# 4. 检查 Docker Compose
docker compose version
# 5. 检查 Buildx
docker buildx version
# 6. 检查服务状态
sudo systemctl status docker
# 7. 检查日志
sudo journalctl -u docker --since "1 hour ago"
2.9.2 docker info 关键字段
docker info
输出关键字段说明:
Server Version: 27.x.x # Docker 引擎版本
Storage Driver: overlay2 # 存储驱动
Logging Driver: json-file # 日志驱动
Cgroup Driver: systemd # cgroup 驱动
Cgroup Version: 2 # cgroup 版本
Kernel Version: 6.x.x # 内核版本
Operating System: Ubuntu 24.04 # 操作系统
Total Memory: 15.63GiB # 总内存
Docker Root Dir: /var/lib/docker # 数据目录
Registry Mirrors: # 镜像源配置
https://docker.1ms.run/
Live Restore Enabled: false # 热升级支持
2.10 卸载 Docker
Ubuntu / Debian
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.gpg
CentOS / RHEL
sudo yum remove -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
要点回顾
| 要点 | 说明 |
|---|---|
| 安装方式 | 推荐官方 APT/YUM 仓库安装 docker-ce |
| 用户权限 | 加入 docker 组或使用 Rootless 模式 |
| 镜像源 | 中国大陆务必配置镜像加速源 |
| Rootless | 更安全但有限制,适合开发环境 |
| 验证 | docker version + docker run hello-world |
注意事项
防火墙: 如果使用 UFW 或 firewalld,确保 Docker 所需端口未被阻断。Docker 会自动管理 iptables 规则。
WSL2 内存: Windows 上 WSL2 默认占用最多 50% 内存,可通过
%UserProfile%\.wslconfig文件调整。
版本选择: 生产环境建议锁定 Docker 版本(如
apt-get install docker-ce=5:27.0.0-1~ubuntu.24.04~noble),避免自动升级导致兼容性问题。
下一步
→ 03 - 架构原理:深入了解 Docker daemon、containerd、runc 的分层架构。