目录

  1. 环境要求
  2. 使用镜像加速安装 Docker 本体
  3. 官方安装方式(无加速)
  4. 配置 Docker 镜像加速器(拉取镜像加速)
  5. Docker Compose 安装
  6. 配置非 root 用户运行 Docker
  7. 常见问题与排查

环境要求

条件 说明
操作系统 Ubuntu 20.04+ / Debian 11+ / CentOS 7+ / RHEL 8+
架构 x86_64(amd64)、ARM64(aarch64)
内核 Linux 内核 3.10+(推荐 4.0+)
卸载旧版本 如有旧版 Docker(docker、docker-engine),需先卸载
# 卸载旧版 Docker(如有)
sudo apt remove docker docker-engine docker.io containerd runc   # Debian/Ubuntu
sudo yum remove docker docker-client docker-client-latest docker-common \
  docker-latest docker-latest-logrotate docker-logrotate docker-engine   # CentOS/RHEL

使用镜像加速安装 Docker 本体

核心思路: 将 Docker 官方软件源替换为国内镜像源,避免从官方源下载时缓慢或超时。
以下以清华 TUNA 镜像为例,阿里云、中科大等镜像站同理,替换 URL 即可。

Ubuntu(推荐用清华镜像)

方式一:使用镜像源脚本一键安装(推荐)

# 1. 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl

# 2. 添加 Docker 官方 GPG 密钥(通过镜像站加速)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 3. 添加 Docker 镜像源(清华)
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 验证
sudo docker run hello-world

方式二:逐步骤详解

# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl

# 创建 keyrings 目录
sudo install -m 0755 -d /etc/apt/keyrings

# 下载 GPG 密钥(使用清华镜像加速)
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 apt 源
# 先获取架构和版本代号
ARCH=$(dpkg --print-architecture)
CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")

# 写入源配置
echo "deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.asc] \
  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  ${CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list

# 安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 验证安装
sudo docker --version
sudo docker run hello-world

CentOS / RHEL

# 1. 安装依赖
sudo yum install -y yum-utils

# 2. 添加 Docker 镜像源(清华)
sudo yum-config-manager --add-repo \
  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

# 3. 替换 repo 文件中的官方源为镜像源(可选,上一步已指向清华)
#    如使用阿里云:
# sudo yum-config-manager --add-repo \
#   https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 启动
sudo systemctl enable docker
sudo systemctl start docker

# 6. 验证
sudo docker --version
sudo docker run hello-world

Debian

# 1. 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl

# 2. 添加 GPG 密钥(清华镜像)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 3. 添加镜像源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 验证
sudo docker run hello-world

一键安装脚本(含镜像源)

适合快速在 Ubuntu/Debian 上安装,自动使用清华镜像加速。

#!/bin/bash
# Docker 一键安装脚本(使用清华镜像源加速)
set -e

echo "=== Docker 一键安装脚本(清华镜像加速)==="

# 卸载旧版本
sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true

# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl

# 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$ID
fi

case "$OS" in
    ubuntu)
        MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu"
        GPG_URL="${MIRROR_URL}/gpg"
        ;;
    debian)
        MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian"
        GPG_URL="${MIRROR_URL}/gpg"
        ;;
    *)
        echo "不支持的操作系统: $OS"
        exit 1
        ;;
esac

sudo curl -fsSL "$GPG_URL" -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 apt 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  ${MIRROR_URL} $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动
sudo systemctl enable docker
sudo systemctl start docker

echo "=== 安装完成 ==="
docker --version
echo "运行 'sudo docker run hello-world' 验证安装"

官方安装方式(无加速)

如网络环境允许,也可直接使用官方源安装。

# Ubuntu / Debian 官方一键脚本(需能访问 get.docker.com)
curl -fsSL https://get.docker.com | sh

⚠️ 此脚本会从官方源下载,国内可能很慢或超时。如果网络不佳,请使用上方镜像源方式。


配置 Docker 镜像加速器(拉取镜像加速)

安装完 Docker 本体后,还需配置容器镜像加速器,加速 docker pull 拉取镜像的速度。
各云厂商提供免费的镜像加速器(需要注册账号获取专属地址),或使用镜像站提供的公共加速服务。

方式一:配置 Docker daemon(推荐)

# 创建或编辑 daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}
EOF

# 重新加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证配置是否生效
sudo docker info | grep -A 5 "Registry Mirrors"

可用的镜像加速器地址

加速器地址 说明
https://docker.1ms.run 公共镜像加速
https://docker.xuanyuan.me 公共镜像加速
https://docker.m.daocloud.io DaoCloud 加速器
https://dockerproxy.com Docker Proxy
https://docker-cf.registry.cyou CloudFlare 反代

⚠️ 注意: 公共加速器可能随时间变更或失效,请以各服务商最新公告为准。
云服务器用户建议使用对应云厂商的镜像加速器(阿里云 ACR、腾讯云 TCR、华为云 SWR 等),通常需在控制台获取专属加速地址。

方式二:配置 containerd(Kubernetes 场景)

如果使用 containerd 而非 Docker daemon(如 Kubernetes 节点),编辑 /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  endpoint = ["https://docker.1ms.run"]

然后重启 containerd:

sudo systemctl restart containerd

测试镜像拉取速度

# 配置前后对比
time docker pull nginx:alpine

配置加速器后常用镜像拉取时间应从数分钟降至 10-30 秒。


Docker Compose 安装

方式一:通过 Docker 官方插件(推荐,已随 Docker Engine 安装)

# 如果已安装 docker-compose-plugin
docker compose version

方式二:独立二进制安装

# 从 GitHub Releases 下载(使用 ghproxy.com 加速)
sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose

# 或使用代理加速
# sudo curl -SL "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
#   -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

配置非 root 用户运行 Docker

# 创建 docker 组(通常已存在)
sudo groupadd docker

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重新登录或刷新组(二选一)
# 方式一:重新登录(退出再 SSH)
# 方式二:直接应用组变更
newgrp docker

# 验证(无需 sudo)
docker run hello-world

常见问题与排查

1. `apt update` 时报 Docker 源 GPG 错误

# 重新下载 GPG 密钥
sudo rm -f /etc/apt/keyrings/docker.asc
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo apt update

2. Docker 安装成功但无法启动

# 查看 Docker 服务状态
sudo systemctl status docker

# 查看日志
sudo journalctl -u docker --no-pager -n 50

# 常见原因:containerd 未启动
sudo systemctl restart containerd
sudo systemctl restart docker

3. 镜像拉取超时 / 连接失败

# 检查 DNS 配置
cat /etc/resolv.conf

# 检查 Docker 代理配置
sudo docker info | grep -i proxy

# 配置 HTTP 代理(如使用代理上网)
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4. `docker-compose` 命令找不到

# 检查是否安装了 docker-compose-plugin
dpkg -l | grep docker-compose  # Ubuntu/Debian
rpm -qa | grep docker-compose  # CentOS/RHEL

# 如未安装:
sudo apt install -y docker-compose-plugin   # Ubuntu/Debian
sudo yum install -y docker-compose-plugin   # CentOS/RHEL

# 使用 docker compose(注意空格)而非 docker-compose
docker compose version

5. 磁盘空间清理

# 查看磁盘占用
sudo docker system df

# 清理未使用的容器、镜像、网络、构建缓存
sudo docker system prune -a --volumes

# 只清理构建缓存(安全)
sudo docker builder prune

参考链接