Docker经典安装命令失效排查:Ubuntu/CentOS多系统测试与解决方案

目录

  • [Docker 经典安装命令失效排查:Ubuntu/CentOS 多系统测试与解决方案](#Docker 经典安装命令失效排查:Ubuntu/CentOS 多系统测试与解决方案)
    • [一、测试背景:经典命令为何突然 "不好使"?](#一、测试背景:经典命令为何突然 “不好使”?)
    • 二、多系统安装测试详情
      • [2.1. Ubuntu 20.04:EOL 系统,无论是否上梯子均失败](#2.1. Ubuntu 20.04:EOL 系统,无论是否上梯子均失败)
      • [2.2. Ubuntu 22.04:非 EOL 系统,需代理才能安装](#2.2. Ubuntu 22.04:非 EOL 系统,需代理才能安装)
      • [2.3. CentOS 7.9:EOL 系统,开代理可 "突破" 安装](#2.3. CentOS 7.9:EOL 系统,开代理可 “突破” 安装)
    • 三、核心原因总结
    • 四、实用安装建议
    • 五、补充:国内源安装备选方案

Docker 经典安装命令失效排查:Ubuntu/CentOS 多系统测试与解决方案

最近在多台服务器上尝试通过经典的 curl -sSL get.docker.com|sh 命令安装 Docker 时,遇到了一系列连接失败、系统不支持的问题。经过对 Ubuntu 20.04、Ubuntu 22.04、CentOS 7.9 三个系统的反复测试,终于摸清了失效原因和解决规律,特此整理分享,帮大家避开同样的坑。

一、测试背景:经典命令为何突然 "不好使"?

一直以来,curl -sSL get.docker.com|sh 是 Docker 官方推荐的快速安装命令,对于多个平台兼容性最高,无需手动配置源,一键即可完成安装。但这次操作中,该命令频繁出现 "连接断开""系统不支持" 提示,于是针对不同系统做了对比测试 ------ 核心变量为 "是否开启代理(梯子)""系统是否已达 EOL(End of Life,生命周期结束)"。

二、多系统安装测试详情

2.1. Ubuntu 20.04:EOL 系统,无论是否上梯子均失败

  • 未开代理时:执行命令后立即弹出警告,明确提示 "Ubuntu 20.04 为 EOL 系统,Docker 不再提供支持",随后安装进程继续,但最后还是会失败。

  • 开启代理后 :重新执行命令,仍触发相同的 EOL 警告,随后还是会失败。
    结论:Ubuntu 20.04 因已停止生命周期支持,Docker 官方彻底关闭了该系统的安装通道,与网络环境无关。

2.2. Ubuntu 22.04:非 EOL 系统,需代理才能安装

  • 未开代理时 :命令执行后卡在 "连接get.docker.com" 步骤,反复提示 "连接被拒绝""超时重试",最终失败。

  • 开启代理后 :连接瞬间建立,Docker 依赖包、引擎自动下载安装,全程无报错,安装完成后docker -v可正常显示版本。

    结论:Ubuntu 22.04 仍在 Docker 支持范围内,但国内网络无法正常访问 Docker 官方源,需通过代理绕开网络限制。

2.3. CentOS 7.9:EOL 系统,开代理可 "突破" 安装

  • 未开代理时:执行命令后弹出 "CentOS 7 已达 EOL,Docker 不再官方支持" 的警告,同时因网络问题无法拉取安装包,安装失败。
  • 开启代理后 :虽然仍会显示 EOL 警告,但警告后会继续执行安装流程 ------ 依赖包正常下载,引擎成功部署,最终docker -v可正常显示版本。

    结论:CentOS 7.9 虽已 EOL,但 Docker 官方未完全阻断安装通道,仅需通过代理解决网络问题,即可完成安装(注:后续使用中可能存在兼容性风险,因系统本身已无官方更新)。

三、核心原因总结

  1. 系统 EOL 限制:Docker 官方会对已停止生命周期的系统(如 Ubuntu 20.04、CentOS 7.9)停止或限制安装支持 ------ 其中 Ubuntu 20.04 限制最严格(完全无法安装),CentOS 7.9 限制较宽松(仅警告,仍可安装)。
  2. 国内网络屏蔽 :Docker 官方源(get.docker.com、Docker Hub 等)在国内未做加速节点,直接访问会被阻断,导致非 EOL 系统(如 Ubuntu 22.04)也无法正常安装,需代理才能访问。

四、实用安装建议

系统版本 推荐安装方式
Ubuntu 20.04 优先升级系统到 Ubuntu 22.04(长期支持版),再用 curl -sSL get.docker.com
Ubuntu 22.04 方法 1:开启代理后执行经典命令;方法 2:配置国内 Docker 源(如阿里云、腾讯云),无需代理即可安装。
CentOS 7.9 临时使用可开启代理执行经典命令;长期使用建议升级到 CentOS Stream 9 或迁移到 Rocky Linux,避免 EOL 系统的兼容性风险。

五、补充:国内源安装备选方案

【ubuntu20.04/ubuntu22.04】

apt update

apt install docker.io -y

【centos7.9】

#添加源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker

yum install docker-ce -y

#以上基本解决问题,如果还不行就参考以下方法:

步骤如下:

  1. 卸载旧版本(若有):apt remove docker docker-engine docker.io containerd runc
  2. 安装依赖:apt update && apt install ca-certificates curl gnupg lsb-release
  3. 添加阿里云 GPG 密钥:curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 配置阿里云源:echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 安装 Docker:sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

通过国内源安装,无需代理即可避开网络限制,且速度更快,适合长期使用。

你遇到了什么问题,可以在评论区留言探讨。

相关推荐
lichenyang45320 小时前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang45321 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang45321 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang45321 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
XIAOHEZIcode21 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy6 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭6 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩7 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵8 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程