一、卸载系统原有旧版本Docker

首先清理系统中可能存在的旧版本Docker相关包:

sudo apt remove -y docker docker-engine docker.io containerd runc

sudo apt autoremove -y


二、安装必要依赖包

sudo apt update

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release


三、添加国内Docker GPG密钥

选择以下任意一个国内镜像源的GPG密钥(推荐清华大学或阿里云):

#方案1:清华大学镜像源(推荐)

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg


#方案2:阿里云镜像源

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg


#方案3:中国科学技术大学镜像源

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg


四、配置国内Docker APT软件源

根据您选择的GPG密钥,对应配置相同的软件源:

对应方案1:清华大学源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


对应方案2:阿里云源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


对应方案3:中科大源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


五、安装Docker CE及相关组件

sudo apt update -y

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose

六、配置Docker国内镜像加速器

这是关键步骤,解决后续拉取Docker镜像速度慢或失败的问题:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.xuanyuan.me",
    "https://docker.1ms.run",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.baidubce.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

重启Docker服务使配置生效,并查看服务状态:

sudo systemctl daemon-reload

sudo systemctl restart docker

sudo systemctl status docker


七、验证安装是否成功

# 验证Docker版本

docker --version

正常输出示例:


# 验证Docker Compose插件

docker-compose version

正常输出示例:


# 运行测试容器

sudo docker run --rm hello-world

如果看到"Hello from Docker!"的欢迎信息,说明Docker安装和配置完全成功。

八、(可选)将当前用户添加到docker组

避免每次使用docker命令都需要sudo:

sudo usermod -aG docker $USER

重要:执行完此命令后,需要重启才能生效。

九、如果上述在线安装仍失败:离线安装方案

如果你的环境完全无法访问外部网络,可以使用离线安装方式:

步骤1:在有网络的机器上下载离线包
访问阿里云镜像站下载对应Ubuntu 20.04(focal)的deb包:
地址:https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/focal/pool/stable/amd64/

需要下载以下5个文件(版本号可能不同,下载最新版即可):
1. containerd.io_*.deb
2. docker-ce-cli_*.deb
3. docker-ce_*.deb
4. docker-buildx-plugin_*.deb
5. docker-compose-plugin_*.deb

步骤2:将下载的deb包上传到目标虚拟机

步骤3:按顺序安装离线包

sudo dpkg -i containerd.io_*.deb

sudo dpkg -i docker-ce-cli_*.deb

sudo dpkg -i docker-ce_*.deb

sudo dpkg -i docker-buildx-plugin_*.deb

sudo dpkg -i docker-compose-plugin_*.deb


步骤4:启动Docker服务并配置镜像加速器

sudo systemctl enable --now docker

然后按照第六步配置国内镜像加速器。

十、常见问题解决

1. GPG密钥验证失败:重新执行第三步下载GPG密钥
2. apt update失败:尝试更换其他国内镜像源
3. docker命令执行权限不足:执行第八步并重新登录
4. 镜像拉取失败:检查daemon.json配置是否正确,重启Docker服务

更多推荐