努力
加油

腾讯云Ubuntu 20.04安装Docker的完整步骤是什么?

在腾讯云 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

常见问题排查

  1. 权限问题:如果运行 docker 命令提示权限不足,检查是否已执行 usermod 并重新登录。临时解决方案是使用 sudo docker ...,但不推荐长期使用。
  2. 网络问题:如果在添加 GPG 密钥或下载包时超时,请检查服务器的出站网络策略,确保能访问 download.docker.com 和 mirrors.cloud.tencent.com。
  3. 版本过低:如果执行 apt update 后找不到 docker-ce,可能是源配置错误,请回头检查 /etc/apt/sources.list.d/docker.list 中的内容是否正确,特别是 $(lsb_release -cs) 替换后的结果是否为 focal。

这套流程是目前在 Ubuntu 20.04 上部署 Docker 的标准做法,稳定性高,便于后续通过 apt upgrade 平滑升级 Docker 版本。