先说结论:目前强烈建议首选 Ubuntu(尤其是 20.04 LTS 或 22.04 LTS),或者 Debian。
CentOS 8 已经停止维护(EOL),虽然你可以用 CentOS Stream 或者 Rocky Linux/AlmaLinux 作为替代,但在国内阿里云生态中,Ubuntu 的兼容性和社区支持度要远高于当前的 CentOS 系列。
下面从几个核心维度给你拆解为什么这么选,以及在实际操作中需要注意的坑。
1. 现状与生命周期(最核心的劝退理由)
-
CentOS 的尴尬处境:
- CentOS 8 已于 2021 年底正式终止维护。这意味着你不再收到安全补丁和 Bug 修复。在云服务器上跑一个没有安全更新的系统,风险极大。
- CentOS 7 虽然还在 ELS(扩展生命周期服务)期内,但那是付费支持的,且内核版本较老(3.10),对某些新特性的 Docker 支持不如新内核友好。
- 如果你坚持用 RedHat 系,现在主流转向了 Rocky Linux 或 AlmaLinux,或者直接使用 CentOS Stream。但这两个发行版在国内的镜像源速度、文档丰富程度、第三方软件包支持上,依然略逊于 Ubuntu/Debian。
-
Ubuntu 的优势:
- 拥有明确的 LTS(长期支持)版本,每两年发布一次,提供 5 年的标准支持。
- Docker 官方文档、各类开源项目(如 Kubernetes, Prometheus, Nginx 等)的首选测试平台通常是 Ubuntu。
- 阿里云控制台提供的“公共镜像”中,Ubuntu 的更新频率和维护力度通常优于 CentOS。
2. 阿里云环境下的实操体验
在阿里云 ECS 上运行 Docker,有几个具体的技术点需要考虑:
A. 内核参数与 cgroups
Docker 依赖 Linux 内核特性。Ubuntu 20.04+ 默认使用 systemd 管理容器,且内核版本较新(5.4+ 或 5.15+),对 cgroups v2 的支持更好。
- 注意:新版 Docker(20.10+)默认启用 cgroups v2。Ubuntu 22.04 默认就是 cgroups v2,配置起来反而更简单。CentOS 7 是 cgroups v1,很多新工具需要额外配置才能完美运行。
B. 软件包安装便利性
- Ubuntu:
apt命令直观,snap或ppa获取最新版软件很方便。Docker 官方提供的 apt 仓库非常稳定。 - CentOS/Rocky:
yum/dnf虽然也成熟,但很多第三方库(如 Node.js, Python 新版本)在 EPEL 中的同步速度有时不如 Ubuntu 的 Universe/Multiverse 仓库快。
C. 阿里云专属优化
阿里云为 Ubuntu 提供了较好的云助手(Cloud Assistant)和云监控插件支持。虽然 CentOS 也有,但由于用户基数变化,Ubuntu 的自动化运维脚本和社区模板更多。
3. 如果非要用 RedHat 系怎么办?
如果你的团队有严格的合规要求,必须使用 RHEL 兼容系统,那么请按以下优先级选择:
- Rocky Linux 9 / AlmaLinux 9:这是 CentOS 的精神继承者,完全二进制兼容 RHEL 9,内核较新(5.14+),安全性好,适合生产环境。
- CentOS Stream 9:滚动更新模型,适合开发测试,但不推荐用于关键生产服务器。
- Amazon Linux 2023:如果你在阿里云上跑的是 AWS 迁移过来的架构,AL2023 也是个不错的选择,它轻量、安全、专为云优化。
4. 避坑指南(无论选哪个都必看)
-
不要直接用 root 运行 Docker:
创建普通用户并加入 docker 组:sudo usermod -aG docker $USER # 注销重新登录生效 -
防火墙设置:
阿里云的安全组(Security Group)是第一道防线,务必在控制台放行端口。
系统内部建议使用ufw(Ubuntu) 或firewalld(CentOS/Rocky)。- Ubuntu:
sudo ufw allow 80/tcp - CentOS:
sudo firewall-cmd --permanent --add-port=80/tcp && sudo firewall-cmd --reload
- Ubuntu:
-
Swap 分区问题:
Docker 在新版本中默认要求禁用 Swap 或将其标记为不活跃。如果你发现 Docker 启动报错,检查/proc/sys/vm/swappiness是否为 0。 -
时区设置:
云服务器默认可能是 UTC 时间。如果你的应用强依赖北京时间,请在初始化时设置:timedatectl set-timezone Asia/Shanghai
总结建议
| 场景 | 推荐操作系统 | 理由 |
|---|---|---|
| 个人项目、初创公司、大多数微服务 | Ubuntu 22.04 LTS | 社区资源最多,Docker 兼容性最好,上手最快 |
| 国企、XX、强合规要求 | Rocky Linux 9 / AlmaLinux 9 | RHEL 兼容,安全审计通过率高,替代 CentOS 的最佳选择 |
| 追求极致轻量、嵌入式 IoT 网关 | Alpine Linux | 镜像极小,但调试困难,仅限高级用户 |
| 避免使用 | CentOS 7/8 | 已停更,安全风险高,新特性支持差 |
最终建议:直接购买阿里云 Ubuntu 22.04 LTS 公共镜像,然后按照 Docker 官方文档一键安装即可。这是目前国内互联网行业最稳妥、最高效的选择。
云技术博客