强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

Docker 完全指南 / 02 - 安装与配置

02 - 安装与配置

在 Linux、macOS、Windows 上安装 Docker,配置镜像加速源,启用 Rootless 模式。


2.1 安装方式概览

平台推荐方式工具
Ubuntu / DebianAPT 仓库docker-ce
CentOS / RHEL / FedoraDNF/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 中配置:

配置项推荐值说明
CPUs4+分配的 CPU 核心数
Memory8 GB+内存大小
Swap1 GB交换空间
Disk image size64 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.runhttps://docker.1ms.run社区维护
xuanyuan.mehttps://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 的分层架构。