总结摘要
install-docker.sh 是一个用于快速安装 Docker Engine的Shell脚本,支持主流 Linux发行版,自动配置镜像加速器,简化 Docker安装和部署流程。
脚本功能
install-docker.sh 是一个一键式 Docker Engine 安装脚本,支持 Debian、Ubuntu、RHEL、CentOS、Alibaba Cloud Linux、Anolis OS等主流Linux发行版。脚本自动添加官方软件源、安装最新稳定版 Docker Engine及Docker Compose插件,并配置国内镜像加速器,极大简化 Docker的安装和部署流程。
核心特性:
- 一键安装,无需手动配置
- 智能识别操作系统类型
- 自动添加官方或镜像软件源
- 集成 Docker Compose插件
- 预配置多个国内镜像加速器
- 自动启动并设置开机自启
- 支持多种 Linux发行版
脚本依赖
系统工具依赖
根据操作系统不同,需要以下基础工具:
Debian/Ubuntu系列:
apt-get:包管理工具ca-certificates:CA证书包curl:下载工具gnupg:GPG签名验证
RHEL/CentOS/Alibaba Cloud Linux系列:
yum或dnf:包管理工具yum-utils:YUM工具集
外部服务依赖
- 互联网连接:用于下载 Docker安装包和配置软件源
- Docker 官方软件源:通过阿里云镜像加速访问
环境变量依赖
本脚本无需预设环境变量,所有配置已内置在脚本中。
内置配置说明
脚本内部定义了以下配置:
| |
参数用法
本脚本无命令行参数,直接执行完整安装流程:
- 无参数模式:自动完成所有安装步骤
- 自定义配置:需编辑脚本修改镜像地址或其他参数
使用方法
快速安装与使用
下载脚本:
1 2 3 4 5# 使用主下载地址 bash <(curl -sL sc.eli1.top) install-docker download # 或使用备用地址 bash <(curl -sL download.elisky.cn) install-docker download赋予执行权限:
1chmod +x install-docker.sh执行安装:
1 2 3 4 5# 使用 root用户运行(推荐) sudo ./install-docker.sh # 或直接以 root身份运行 sudo bash install-docker.sh验证安装:
1 2 3 4 5 6 7 8 9 10 11 12# 查看 Docker版本 docker --version docker compose version # 查看 Docker 服务状态 systemctl status docker # 查看镜像加速配置 docker info | grep -A 10 "Registry Mirrors" # 运行测试容器 docker run hello-world
典型使用场景示例
场景 1:全新服务器安装 Docker
| |
场景 2:批量部署 Docker环境
创建批量部署脚本:
| |
场景 3:指定 Docker版本安装
脚本默认安装最新稳定版,如需指定版本,编辑脚本:
| |
场景 4:自定义镜像加速器
编辑脚本中的add-daemonfile()函数(约第 44-56 行):
| |
场景 5:离线环境安装
| |
场景 6:配置开机自启和防火墙
| |
安装流程详解
脚本执行以下步骤:
检查包管理工具(第 2-4 行):
1 2 3command_exists() { command -v "$@" > /dev/null 2>&1 }Debian/Ubuntu系列安装:
添加 GPG密钥(第 13-17 行):
1 2 3sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg添加软件源(第 18-20 行):
1 2echo "deb [arch=... signed-by=...] https://mirrors.aliyun.com/docker-ce/..." | \ sudo tee /etc/apt/sources.list.d/docker.list安装 Docker(第 23-24 行):
1 2 3sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin -y
RHEL/CentOS系列安装:
添加 YUM 源(第 26-28 行):
1 2sudo yum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/...安装 Docker(第 30-31 行):
1 2yum install docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin -y
配置 daemon.json(第 44-56 行):
1 2 3 4 5 6mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": [...] } EOF启用并启动服务(第 58-60 行):
1systemctl enable --now docker验证安装(第 61-63 行):
实际应用场景
- 新服务器初始化:快速在新购云服务器上部署 Docker环境
- 开发环境搭建:为开发人员快速创建 Docker开发环境
- CI/CD流水线:在 CI服务器上安装 Docker用于构建镜像
- 生产环境部署:标准化生产环境的 Docker安装流程
- 培训演示环境:快速搭建 Docker培训或演示环境
- 多节点集群:批量在 Kubernetes节点上安装 Docker
- 边缘计算节点:在边缘设备上部署轻量级 Docker环境
注意事项
操作系统兼容性
支持的发行版:
- Debian系列:Debian 10/11/12, Ubuntu 18.04/20.04/22.04
- RHEL 系列:RHEL 7/8/9, CentOS 7/8/9, AlmaLinux, Rocky Linux
- 国产系统:Alibaba Cloud Linux 2/3, Anolis OS
版本要求:
- Ubuntu:建议 18.04 LTS及以上
- CentOS:建议 7.0及以上(CentOS 8已停止维护)
- Debian:建议 10 (Buster)及以上
网络要求
- 软件源访问:需要能访问
https://mirrors.aliyun.com/ - 镜像加速器:脚本配置的加速器在国内访问速度更快
- 代理配置:如使用 HTTP代理,需额外配置:
1 2 3 4 5 6 7 8 9 10# 创建 systemd 覆盖配置 mkdir -p /etc/systemd/system/docker.service.d cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" Environment="HTTPS_PROXY=https://proxy.example.com:8080" EOF systemctl daemon-reload systemctl restart docker
存储配置
默认存储驱动:overlay2(推荐)
数据目录:
/var/lib/docker磁盘空间:建议至少预留 20GB可用空间
自定义数据目录:
1 2 3 4 5 6 7 8 9 10 11# 编辑 daemon.json cat > /etc/docker/daemon.json <<EOF { "data-root": "/mnt/docker-data" } EOF # 迁移现有数据 systemctl stop docker rsync -av /var/lib/docker/ /mnt/docker-data/ systemctl start docker
安全配置
Root权限:Docker守护进程需要root权限运行
Socket权限:将用户加入 docker组可免sudo使用:
1 2sudo usermod -aG docker $USER newgrp dockerTLS加密:生产环境建议启用 TLS:
1 2 3 4 5 6 7 8 9 10 11# 生成 CA和服务器证书 # 配置 daemon.json 启用 TLS cat > /etc/docker/daemon.json <<EOF { "tls": true, "tlsverify": true, "tlscacert": "/etc/docker/certs/ca.pem", "tlscert": "/etc/docker/certs/server-cert.pem", "tlskey": "/etc/docker/certs/server-key.pem" } EOF防火墙配置:不要随意开放 2375端口(未加密的 Docker API)
性能优化
日志驱动:建议使用 json-file并限制大小:
1 2 3 4 5 6 7 8 9cat > /etc/docker/daemon.json <<EOF { "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } } EOF存储优化:定期清理悬空镜像和停止的容器:
1 2 3 4# 添加定时任务 crontab -e # 每周日凌晨清理 0 3 * * 0 docker system prune -f
常见问题排查
问题 1:软件源添加失败
| |
问题 2:Docker服务无法启动
| |
问题 3:镜像拉取速度慢
| |
问题 4:权限拒绝错误
| |
最佳实践
- 版本固定:生产环境建议固定 Docker版本,避免自动升级
- 定期更新:每月检查安全更新并及时应用
- 监控告警:监控 Docker服务状态和容器健康
- 日志管理:配置日志轮转防止磁盘占满
- 备份配置:定期备份 daemon.json和证书文件
- 资源限制:为容器配置 CPU和内存限制
- 网络规划:合理规划容器网段,避免冲突
- 存储分离:将/var/lib/docker挂载到独立分区
升级策略
- 小版本升级:通常无兼容性问题,可直接升级
- 大版本升级:先在测试环境验证
- 降级方法:
1 2 3 4 5# 卸载当前版本 apt-get remove docker-ce docker-ce-cli containerd.io # 安装指定版本 apt-get install docker-ce=5:20.10.24~3-0~ubuntu-focal ...
相关资源
- Docker 官方文档:https://docs.docker.com/
- Docker Hub:https://hub.docker.com/
- 阿里云镜像加速器:https://cr.console.aliyun.com/






















