在腾讯云 Ubuntu 20.04 系统上安装 Docker,推荐采用官方源安装方式(确保版本最新且稳定),以下是详细步骤:
✅ 前置准备
-
确认系统版本
cat /etc/os-release | grep VERSION_ID # 应输出 "20.04" -
更新软件包索引并安装依赖
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release -
关闭防火墙(可选但推荐)
若使用腾讯云安全组已放行端口,可跳过;否则建议暂时关闭ufw测试:sudo ufw disable
🐳 安装 Docker Engine
步骤 1:添加 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
步骤 2:设置 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
💡 注:Ubuntu 20.04 对应 codename 为
focal,命令会自动识别。
步骤 3:安装 Docker Engine、CLI 和 Containerd
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步骤 4:验证安装
docker version
docker run hello-world
# 若看到欢迎信息,说明安装成功
🔐 非 root 用户运行 Docker(可选)
避免每次都用 sudo:
sudo usermod -aG docker $USER
newgrp docker # 立即生效,或重新登录
docker run hello-world # 无需 sudo
🚀 启用开机自启 & 配置镜像提速(腾讯云环境推荐)
1. 设置 Docker 服务开机自启
sudo systemctl enable docker
sudo systemctl start docker
2. 配置阿里云/腾讯云镜像提速器(提升拉取速度)
编辑 /etc/docker/daemon.json:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}
EOF
⚠️ 提示:上述镜像源可能变动,建议访问 腾讯云镜像提速 获取专属提速地址(需登录腾讯云账号生成)。
然后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
🧪 测试容器网络(可选)
docker run -it --rm ubuntu:20.04 ping www.baidu.com
# 检查容器能否联网(腾讯云默认安全组需放行出站流量)
❗ 常见问题排查
| 问题 | 解决方案 |
|---|---|
Permission denied 执行 docker 命令 |
检查是否加入 docker 组:groups $USER |
| 容器无法上网 | 检查腾讯云控制台「安全组」是否允许出站(如 80/443/53) |
containerd not found |
确保安装了 containerd.io 包 |
启动失败提示 cgroup driver |
编辑 /etc/docker/daemon.json 添加 "exec-opts": ["native.cgroupdriver=systemd"] |
完成以上步骤后,您的 Ubuntu 20.04 服务器即可稳定运行 Docker。如需部署 Kubernetes 或更多高级功能,可继续扩展。需要我提供 Docker Compose 示例或 K8s 集成方案吗?
ECLOUD博客