在腾讯云 Ubuntu 20.04 上安装 Docker,最稳妥且符合官方推荐的方式是通过 Docker 官方源进行安装。虽然 apt install docker.io 也能装上,但那个版本通常比较旧,而且后续升级维护不如官方源方便。
下面是一套经过验证的、生产环境可用的完整步骤。整个过程分为:移除旧版本残留、配置官方源、安装依赖、安装 Docker Engine、配置镜像提速(国内环境必做)、以及权限设置。
1. 清理旧版本及冲突包
如果你之前通过系统包管理器装过 Docker 或者相关工具,建议先清理一下,避免版本冲突。
sudo apt-get remove docker docker-engine docker.io containerd runc
注意:这一步不会删除你现有的镜像、容器或卷数据,只是卸载二进制文件。
2. 更新系统并安装基础依赖
Docker 的安装需要一些 HTTPS 传输和证书支持,确保这些包是最新的。
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
3. 添加 Docker 官方 GPG 密钥和源
这是最关键的一步,确保你下载的是官方签名的软件包。
第一步:添加官方 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
sudo chmod a+r /etc/apt/keyrings/docker.gpg
第二步:设置稳定版仓库
Ubuntu 20.04 对应的代号是 focal。执行以下命令将 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
4. 安装 Docker Engine
再次更新索引,然后安装 Docker 的核心组件。现在推荐安装 docker-ce (Community Edition)。
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装完成后,可以通过以下命令验证是否安装成功:
sudo docker --version
# 输出示例: Docker version 24.0.x, build xxxxx
5. 【国内环境重点】配置 Docker 镜像提速器
在国内直接拉取 Docker Hub 的镜像速度极慢,甚至经常超时。必须配置镜像提速器。这里以腾讯云提供的免费公共镜像提速为例(其他厂商如阿里云也有类似服务,原理一样)。
编辑或创建 daemon.json 文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
提示:如果你没有腾讯云账号,也可以使用阿里云或其他第三方提速地址,但请确保地址有效。腾讯云镜像提速地址对公网开放,无需鉴权即可使用。
重启 Docker 服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证配置是否生效:
docker info | grep -i mirror
# 应该能看到 Registry Mirrors: https://mirror.ccs.tencentyun.com
6. 允许非 root 用户操作 Docker(可选但推荐)
默认情况下,只有 root 用户或 docker 组的成员才能运行 Docker 命令。为了日常开发方便,可以将当前用户加入 docker 组。
sudo usermod -aG docker $USER
重要:修改组后,你需要重新登录终端或服务器才能使新组权限生效。你可以尝试运行以下命令测试:
docker ps
如果不再报错 permission denied,说明配置成功。
7. 开机自启与常用管理命令
确保 Docker 随系统启动而自动运行:
sudo systemctl enable docker
sudo systemctl enable containerd
常用运维命令:
- 查看 Docker 状态:
systemctl status docker - 停止 Docker:
sudo systemctl stop docker - 启动 Docker:
sudo systemctl start docker - 查看正在运行的容器:
docker ps - 查看所有容器(包括已停止的):
docker ps -a
常见问题排查
- 权限问题:如果运行
docker命令提示权限不足,检查是否已执行usermod并重新登录。临时解决方案是使用sudo docker ...,但不推荐长期使用。 - 网络问题:如果在添加 GPG 密钥或下载包时超时,请检查服务器的出站网络策略,确保能访问
download.docker.com和mirrors.cloud.tencent.com。 - 版本过低:如果执行
apt update后找不到docker-ce,可能是源配置错误,请回头检查/etc/apt/sources.list.d/docker.list中的内容是否正确,特别是$(lsb_release -cs)替换后的结果是否为focal。
这套流程是目前在 Ubuntu 20.04 上部署 Docker 的标准做法,稳定性高,便于后续通过 apt upgrade 平滑升级 Docker 版本。
云技术博客