1. 检查并更新软件源
# 更新包列表
sudo apt update
sudo apt upgrade -y
# 查看系统版本
lsb_release -a
2. 添加官方Docker仓库
# 安装必要的依赖
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加Docker仓库
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
# 更新包列表
sudo apt update
3. 如果官方源有问题,尝试使用国内镜像源
方案A:使用阿里云镜像
# 备份原源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# 编辑源列表(根据你的Ubuntu版本选择合适的代号)
# 使用nano、vim或其他编辑器
sudo nano /etc/apt/sources.list
# 添加阿里云Docker源(替换$(lsb_release -cs)为实际版本,如jammy、focal等)
echo \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker-aliyun.list
方案B:使用清华镜像
echo \
"deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker-tuna.list
4. 如果仍然失败,手动修改系统版本代号
有时Ubuntu版本太新或太旧,需要手动指定支持的版本:
# 查看当前系统代号
lsb_release -cs
# 如果是新版本(如23.10、24.04),尝试使用上一个LTS版本代号
# 编辑Docker源文件,将 $(lsb_release -cs) 替换为支持的版本:
# Ubuntu 22.04 → jammy
# Ubuntu 20.04 → focal
# Ubuntu 18.04 → bionic
# 示例:如果系统是24.04但Docker尚未支持,可以尝试使用jammy
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list
5. 安装Docker
# 再次更新包列表
sudo apt update
# 安装Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
sudo docker --version
6. 常见问题排查
错误:Release file for ... is not valid yet
# 同步系统时间
sudo timedatectl set-ntp true
sudo hwclock --hctosys
错误:GPG error
# 重新导入GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
使用备用安装脚本
# 如果上述方法都失败,使用官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
7. 安装后的配置
# 添加当前用户到docker组(避免每次使用sudo)
sudo usermod -aG docker $USER
newgrp docker # 或在重新登录后生效
# 启动Docker服务
sudo systemctl enable docker
sudo systemctl start docker
# 测试运行
docker run hello-world
快速检查脚本
#!/bin/bash
# 检查系统信息
echo "=== 系统信息 ==="
lsb_release -a
echo -e "\n=== 软件源中的docker包 ==="
apt-cache search docker-ce | head -5
echo -e "\n=== 当前docker源配置 ==="
cat /etc/apt/sources.list.d/docker* 2>/dev/null || echo "未找到docker源"
注意:执行完这些步骤后,建议重启终端或执行 newgrp docker 以使组更改生效。