Linux 一键安装 Docker:支持 Ubuntu/CentOS/Debian,带镜像加速与故障自检

0 阅读4分钟

一套脚本搞定 Docker 安装、版本管理、镜像加速、服务自启、安装验证。
适合:开发机初始化、服务器批量部署、团队统一环境。

在 Linux 上装 Docker,看起来就是几条命令,但真实场景里常常会遇到:

  • 系统版本不一致(Ubuntu / Debian / CentOS / Fedora)
  • 安装后拉镜像慢到怀疑人生
  • 服务起不来,日志又难排查
  • 多台机器重复操作,容易漏配置
  • 已有 Docker 不知道该升级还是重装

所以我把这套流程做成了一个可交互的安装脚本:install-docker-linux.sh。这篇文章分享脚本能力、安装流程和踩坑排查,拿来就能用。


先看实际运行效果

install-docker-linux.png

一、脚本解决了哪些问题?

这个脚本不是“只会安装”,而是把“可用、可维护、可排错”都考虑进去了:

1)安装前自动体检

  • 检查 root 权限
  • 检查网络连通性(国内/国际目标)
  • 检查磁盘空间(至少 5GB)
  • 自动识别 Linux 发行版 + 版本 + CPU 架构

如果前置条件不满足,脚本会直接退出并给出修复建议,避免装一半失败。

2)支持多发行版 + 多架构

支持:

  • Ubuntu 20.04 / 22.04 / 24.04
  • Debian 11 / 12
  • CentOS 7 / 8 / 9
  • RHEL 8 / 9
  • Rocky Linux / AlmaLinux 8 / 9
  • Fedora 38 / 39

架构支持:

  • x86_64 (AMD64)
  • ARM64 (aarch64)
  • ARMv7

3)已安装 Docker 也能优雅处理

脚本检测到已有 Docker 时会提供 4 个选项:

  1. 卸载并重装(推荐)
  2. 保持现状,跳过安装
  3. 仅升级到目标版本
  4. 退出脚本

并且在卸载时会询问是否保留 /var/lib/docker 数据。

4)版本可控

  • 默认版本:27.5.0
  • 支持 --version x.y.z 指定版本
  • 找不到指定版本时自动回退安装最新可用版本(并给出提示)

5)自动优化 daemon.json

脚本会自动生成 /etc/docker/daemon.json,包含:

  • 多个国内镜像加速源
  • 日志轮转限制(防止日志无限膨胀)
  • overlay2 存储驱动
  • live-restore
  • 并发下载优化等

6)安装后自动验证

会执行一整套验证流程:

  • docker 命令可用性
  • 版本检查
  • 服务状态检查
  • docker info 可用性
  • hello-world 容器运行测试
  • Compose 插件可用性(如已安装)

二、如何使用?

公众号:IT安装手册,回复:docker脚本

1)默认安装(推荐)

chmod +x install-docker-linux.sh
sudo install-docker-linux.sh

2)安装指定版本

chmod +x install-docker-linux.sh
sudo install-docker-linux.sh --version 24.0.7

3)常用参数

--no-compose     # 不安装 Docker Compose
--no-mirror      # 不使用国内镜像源
--no-autostart   # 不设置开机自启
--help           # 查看帮助

示例:

sudo bash install-docker-linux.sh --version 26.1.0 --no-autostart

三、脚本完整安装流程(16 步)

  1. 检查 root 权限
  2. 检查网络
  3. 检查磁盘空间
  4. 检测系统信息
  5. 检查现有 Docker
  6. 选择 Docker 版本
  7. 更新包索引
  8. 安装依赖
  9. 添加 GPG 密钥
  10. 添加 Docker 仓库
  11. 安装 Docker Engine
  12. 写入 daemon 配置
  13. 配置用户权限(加入 docker 组)
  14. 启动服务并设自启
  15. 执行安装验证
  16. 输出安装总结和后续建议

这套流程最大价值是:可重复、可观测、可回溯


四、默认配置为什么实用?

脚本写入的 daemon.json 重点做了这几件事:

  • 配置多镜像加速,提升国内拉取速度和可用性
  • 日志限制为 100m * 3,防止日志吃满磁盘
  • 开启 live-restore,Docker 重启时尽量不影响容器
  • 调整并发下载和 ulimit,提升大镜像拉取与高并发稳定性

你可以通过下面命令验证镜像加速是否生效:

docker info | grep -A 10 "Registry Mirrors"

五、常见问题(FAQ)

Q1:为什么必须用 sudo/root?

安装过程涉及系统仓库、服务管理、配置文件写入,不用 root 无法完成。

Q2:安装后还要 sudo docker,怎么办?

执行一次:

newgrp docker

或者重新登录终端会话,让用户组变更生效。

Q3:内网机器怎么安装?

先设置代理再执行脚本:

export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
sudo -E bash install-docker-linux.sh

Q4:安装失败从哪看日志?

脚本日志目录:

/var/log/docker-install/

Docker 服务日志:

journalctl -xeu docker.service

六、我最推荐的使用方式

如果你是个人开发者:

  • 直接默认安装 + 保留镜像加速配置

如果你是团队/运维:

  • 固定 --version
  • 固定参数模板(例如是否自启、是否 compose)
  • 把脚本纳入初始化流程(云主机首启、CI Runner 初始化、实验室机器批量部署)

一句话:
把“人工安装经验”沉淀成“可执行标准流程”。


七、结语

Docker 安装不难,难的是“稳定地在不同机器上快速装对”。
这套脚本的目标就是:一次写好,长期复用

如果你也在维护多台 Linux 机器,建议把这类安装流程脚本化:
不仅省时间,更能降低环境差异带来的线上风险。

更多内容