Docker 安装与配置指南
目录
- 环境要求
- 使用镜像加速安装 Docker 本体
- 官方安装方式(无加速)
- 配置 Docker 镜像加速器(拉取镜像加速)
- Docker Compose 安装
- 配置非 root 用户运行 Docker
- 常见问题与排查
环境要求
| 条件 | 说明 |
|---|---|
| 操作系统 | 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
参考链接
💬 评论