Skip to content

Latest commit

 

History

History
231 lines (164 loc) · 5.67 KB

File metadata and controls

231 lines (164 loc) · 5.67 KB

Docker 一键安装脚本 for Linux

一个功能完善的 Docker 自动化安装脚本,支持多发行版、多架构,自带国内镜像加速和完整错误处理,适合生产环境快速部署。


功能特点

  • 多发行版支持 — Ubuntu / Debian / CentOS / RHEL / Rocky Linux / Fedora
  • 多架构适配 — x86_64 / ARM64 / ARMv7 自动检测
  • 版本可选 — 支持安装默认最新版或指定版本(如 24.0.7
  • 国内镜像加速 — 自动配置国内 Docker 镜像源,解决拉取慢的问题
  • 已有 Docker 处理 — 检测已安装的 Docker,可选卸载重装 / 跳过 / 升级
  • Docker Compose — 可选安装 Docker Compose 插件
  • 完整错误处理 — 安装失败自动清理,日志记录全流程
  • 安装后验证 — 自动运行 hello-world 镜像验证安装成功

环境要求

项目 要求
操作系统 Ubuntu 20.04+ / Debian 11+ / CentOS 7+ / RHEL 8+ / Rocky Linux 8+ / Fedora 38+
架构 x86_64 / ARM64 / ARMv7
磁盘空间 至少 5GB 可用空间
网络连接 需要访问互联网(内网需自行配置代理)
权限 root(使用 sudo 运行)

快速使用

默认安装(推荐)

# 下载脚本
curl -fsSL https://raw.githubusercontent.com/gxfdev/docker-install-script/main/install-docker-linux.sh -o install-docker.sh


# 执行安装
sudo bash install-docker.sh

脚本会以交互方式引导你选择版本和配置,全程只需按回车确认。

指定版本安装

sudo bash install-docker.sh --version 24.0.7

其他选项

# 不安装 Docker Compose
sudo bash install-docker.sh --no-compose

# 不使用国内镜像源
sudo bash install-docker.sh --no-mirror

# 不设置开机自启
sudo bash install-docker.sh --no-autostart

# 查看帮助
sudo bash install-docker.sh --help

全部参数

参数 说明
--version <版本号> 指定 Docker 版本,格式 X.Y.Z(如 27.5.0
--no-compose 跳过 Docker Compose 安装
--no-mirror 不使用国内镜像源,使用 Docker 官方源
--no-autostart 不设置 Docker 开机自启
--help 显示帮助信息

安装流程说明

脚本按以下 16 个步骤依次执行,每步都有日志记录和错误处理:

1.  检查 root 权限
2.  检查网络连通性
3.  检查磁盘空间(≥ 5GB)
4.  检测系统发行版和架构
5.  检查已安装的 Docker(交互选择:卸载重装/跳过/升级)
6.  选择 Docker 版本(交互或命令行指定)
7.  更新系统包索引
8.  安装必要依赖
9.  添加 Docker 官方 GPG 密钥
10. 添加 Docker 软件源
11. 安装 Docker Engine + CLI + Containerd
12. 配置 Docker Daemon(镜像加速、日志等)
13. 配置用户权限(将当前用户加入 docker 组)
14. 启动 Docker 服务并设置开机自启
15. 验证安装(运行 hello-world)
16. 显示安装总结

常见问题

1. 提示 "此脚本必须以 root 权限运行"

脚本需要 root 权限来安装系统包和配置服务,请使用 sudo 运行:

sudo bash install-docker.sh

2. 网络连接失败

脚本会依次尝试 ping baidu.comgoogle.com8.8.8.8。如果全部失败:

  • 检查服务器网络配置
  • 如在内网环境,先配置代理:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
sudo -E bash install-docker.sh   # -E 保留环境变量

3. 磁盘空间不足

Docker 安装至少需要 5GB 可用空间,运行容器还需额外空间。清理方法:

# 查看磁盘使用
df -h

# 清理 APT 缓存(Ubuntu/Debian)
sudo apt clean

# 清理 YUM 缓存(CentOS/RHEL)
sudo yum clean all

4. 已安装 Docker 时的处理

脚本检测到已安装的 Docker 后会提供 4 个选项:

选项 说明
1 - 卸载重装 彻底卸载旧版后重新安装(推荐)
2 - 跳过安装 保持当前版本不变
3 - 仅升级 不卸载,直接升级到指定版本
4 - 退出 取消安装

5. 安装后 docker 命令仍需 sudo

脚本会自动将当前用户加入 docker 组,但需要重新登录才能生效:

# 临时生效(当前会话)
newgrp docker

# 或者退出 SSH 重新登录
exit
ssh user@server

6. 国内镜像拉取仍然很慢

脚本默认配置的镜像源可能随时间失效,可手动更新 /etc/docker/daemon.json

sudo nano /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io"
  ]
}

修改后重启 Docker:

sudo systemctl restart docker

7. 如何查看安装日志

所有安装日志保存在 /var/log/docker-install/ 目录下:

# 查看最近的日志
ls -lt /var/log/docker-install/

# 查看日志内容
cat /var/log/docker-install/install_*.log

8. 如何完全卸载 Docker

# Ubuntu / Debian
sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker

# CentOS / RHEL / Rocky
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker

项目结构

docker-install-script/
├── README.md                       # 项目简介(快速入口)
├── DETAILS.md                      # 详细文档(本文件)
├── install-docker-linux.sh         # 一键安装脚本
└── LICENSE                         # 许可证

许可证

MIT License