阿里云ECS实战:Alibaba Cloud Linux 3上Docker安装避坑全记录(附dnf源配置技巧)
最近在帮几个团队迁移服务到阿里云ECS,操作系统清一色选用了Alibaba Cloud Linux 3。这个系统作为CentOS的替代品,性能优化确实不错,但在安装Docker时,不少朋友都踩了坑。最常见的就是照着网上通用的CentOS教程操作,结果在配置软件源或者执行yum makecache fast时直接报错,安装流程卡住,让人一头雾水。
其实,Alibaba Cloud Linux 3虽然兼容RHEL/CentOS 8生态,但在包管理器的细节和一些系统组件的版本上,还是有自己的“小脾气”。直接套用标准流程,很容易遇到版本不匹配、依赖缺失或者源地址失效的问题。这篇文章,我就结合最近几次实战部署和排错的经验,从头到尾梳理一遍在Alibaba Cloud Linux 3上安装Docker的完整流程,重点不是“怎么装”,而是“为什么这么装”以及“遇到问题怎么解决”。我会把那些容易让人困惑的报错点、背后的原因,以及阿里云官方推荐的最佳实践都讲清楚,目标是让你下次再部署时,能一次成功,心里有底。
1. 环境准备与系统认知:理解你的战场
在开始敲命令之前,花几分钟了解你正在操作的Alibaba Cloud Linux 3(简称Alinux3)至关重要。这能帮你预判很多潜在问题,而不是等到报错再回头查资料。
Alibaba Cloud Linux 3是阿里云基于龙蜥社区(OpenAnolis)的Anolis OS打造的操作系统,它全面兼容RHEL/CentOS 8。这意味着,绝大多数为CentOS 8编写的软件、教程和脚本,理论上都能在Alinux3上运行。但“兼容”不等于“完全相同”。阿里云为了优化云环境性能和安全,会对内核和一些核心组件进行定制和更新。这就导致了第一个常见误区:盲目使用yum命令。
在Alinux3中,默认的包管理器其实是dnf,它是yum的下一代版本,语法基本兼容,但底层机制更先进。虽然系统保留了yum命令作为dnf的软链接,但在处理一些特定操作(尤其是添加第三方源时)时,直接使用dnf往往是更稳妥、官方更推荐的选择。很多早期教程里习惯性写的yum命令,在Alinux3上可能因为历史遗留的配置问题而表现不稳定。
首先,我们确认一下系统环境。通过SSH连接到你的ECS实例后,执行以下命令查看系统信息:
cat /etc/os-release
你会看到类似下面的输出,清晰地标识了系统身份:
NAME="Alibaba Cloud Linux"
VERSION="3 (Soaring Falcon)"
ID="alinux"
ID_LIKE="rhel fedora centos"
VERSION_ID="3"
PLATFORM_ID="platform:al8"
PRETTY_NAME="Alibaba Cloud Linux 3 (Soaring Falcon)"
关键信息是ID_LIKE="rhel fedora centos"和PLATFORM_ID="platform:al8",这证实了它与CentOS 8的兼容性。接着,检查内核版本:
uname -r
输出可能是5.10.134-14.2.al8.x86_64这样的格式,al8后缀再次印证了其与RHEL 8/Alibaba Cloud Linux 8系列内核的渊源。
注意:在开始安装任何新软件前,一个好习惯是更新系统已有的软件包。这能确保你的系统拥有最新的安全补丁和基础库。可以使用
sudo dnf update -y来执行更新。不过,如果你的ECS实例是全新创建的,这一步通常可以跳过,因为镜像本身已经比较新了。
2. 关键避坑点:dnf源配置与“fast”参数之谜
安装Docker的第一步,通常是配置软件仓库(Repository)。这里就是第一个“坑”点。很多教程,包括Docker官方文档,会建议你运行以下命令来添加Docker CE的稳定版仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
紧接着,会执行 sudo yum makecache fast 来建立元数据缓存。在Alibaba Cloud Linux 3上,yum makecache fast 这个命令大概率会失败。你会看到类似 Error: Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried 的错误,或者直接提示 bash: yum: command not found 或参数错误。
为什么?
fast参数问题:在较新版本的dnf(Alinux3默认使用)以及CentOS 8+中,yum makecache fast这个命令已经被弃用或不被支持。正确的命令是 <

&spm=1001.2101.3001.5002&articleId=149657227&d=1&t=3&u=1651d3a310e344749697257acf3840db)
1149

被折叠的 条评论
为什么被折叠?



