Linux 一键安装 Docker 的万能脚本

embedded/2025/4/2 6:38:33/

🐳 一键安装 Docker 的万能脚本,支持多系统 + 自动加速配置

在日常运维和开发过程中,安装 Docker 是很多任务的第一步。但由于各发行版的差异、官方源的速度以及权限问题,安装过程可能遇到各种坑。

本篇文章介绍一个实用的 Shell 脚本,支持在主流 Linux 系统上一键安装 Docker,并自动设置国内镜像加速器,极大提升安装体验!


📌 脚本地址

脚本源码已托管在 GitHub 仓库中,欢迎 Star 和 Fork:

👉 https://github.com/Mr-Darker/ShellBox/blob/main/scripts/linux/tools/install_docker.sh


💡 脚本特点

✅ 自动识别系统架构和包管理器(aptyumdnf

✅ 官方源优先,网络不佳时自动切换阿里云镜像源

✅ 自动安装所需依赖(如 curl, gnupg, lsb-release 等)

✅ 自动检测 Docker 是否已安装,避免重复操作

✅ 自动配置国内镜像加速器,仅使用测试通过的节点

✅ 启动 Docker 服务并设置开机自启

✅ 检查当前用户是否在 docker 用户组,并提示重新登录以生效


🔪 支持的操作系统

  • Ubuntu / Debian
  • CentOS / RHEL / Rocky Linux / AlmaLinux
  • Fedora(实验性支持)

📦 如何使用

# 克隆仓库(或直接复制 install_docker.sh 脚本内容)
git clone https://github.com/Mr-Darker/ShellBox.git# 进入脚本目录
cd ShellBox/scripts/linux/tools# 赋予执行权限
chmod +x install_docker.sh# 运行脚本
./install_docker.sh

🚀 示例效果截图

在这里插入图片描述


⚙️ 脚本核心逻辑解析

  • detect_package_manager:自动识别包管理器
  • install_dependencies:按系统安装所需依赖
  • add_docker_repo_official:添加官方 GPG 和 APT/YUM 源
  • add_docker_repo_aliyun:官方失败则切换阿里云镜像源
  • install_docker_packages:安装 Docker Engine
  • start_docker:启动服务并动态测试并配置可用加速器
  • add_user_to_group:将当前用户加入 docker 用户组

🌐 相关链接

  • Docker 官方文档(安装)
  • 阿里云加速器说明
  • 腾讯云镜像源说明
  • 常用 Docker 镜像源整理(Star 数多,活跃)
  • Docker Registry 镜像源测试项目(GitHub Actions 自动检测)

⭐ 项目推荐

如果你觉得这个脚本实用,欢迎给仓库点个 ⭐Star:

🔗 https://github.com/Mr-Darker/ShellBox


http://www.ppmy.cn/embedded/178201.html

相关文章

利用智能合约技术打破线下陪玩私单僵局的可行性分析

在快节奏的生活里,找个线下陪玩一起打游戏、逛街,本是件惬意事。可不少人都遭遇过这样的尴尬:在 APP 上刷了半天,却怎么也约不到陪玩师,这背后究竟是怎么一回事呢? ​ 传统陪玩伴游门店给陪玩师的提成低至…

Vue 和 Element-UI 技术及其在项目中的具体作用解释

1. Vue 作用: Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。在本项目中,Vue 主要用于开发前端页面,实现动态交互和组件化开发。 项目中的应用: 前后端分离架构: 项目的 resources/front 和 resour…

3.1.3 MYSQL连接池

文章目录 3.1.3 MYSQL连接池1.维持管理固定数量的链接,复用连接资源2. MYSQL网络模型3. MYSQL连接驱动使用4. 同步连接池1. 执行一个sql语句,怎么拿到数据库返回值?2. MySQL 执行流程3. 同步连接池的使用场景4. 连接池的线程管理5. 为什么服务…

Go语言基础:数据类型

一、基础数据类型:Go语言的积木块 1.1 数字类型全家福 package mainimport ("fmt" )func main() {// 有符号整数类型var a int 42 // int 类型,自动选择32或64位var b int8 127 // int…

蓝桥刷题note12(lcm,gcd问题)

lcm(a,b):a,b的最小公倍数 gcd(a,b):a,b的最大公约数 性质: 1.a*blcm(a,b)*gcd(a,b) 2.gcd(a,b)gcd(a%b,b)gcd(b,a%b) 求gcd: nt gcd(int a, int b) {if (b 0) {return a;}return gcd(b, a % b); } 1.薅羊毛 双十一购物节来了!作为精打细…

RK3588,V4l2 读取Gmsl相机, Rga yuv422转换rgb (mmap)

RK3588, 使用V4l2 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 内存管理方式采用 mmap… 查看相机信息 v4l2-ctl --all -d /dev/cam0 , 查看自己相机分辨率,输出格式等信息,对应修改后续代码测试… Driver Info:Driver name : rkcif…

HCIA—— 31 HTTP的报文、请求响应报文、方法、URI和URL

学习目标: HTTP的报文、请求响应报文、方法、URI和URL 学习内容: HTTP报文——请求报文和响应报文;HTTP报文结构HTTP的---请求报文首部和响应报文首部方法URI和URL 目录 1.HTTP报文 1)HTTP的报文——请求报文和响应报文 HTTP协议的请求和响…

Fegin 400错误分析

问题描述 使用Fegin进行远程接口调用出现400的错误,但是使用postman或curl命令进行接口访问却没有任何问题。 问题分析 根据Fegin调用失败,而postman直接访问会出现400错误。而400错误一般都是客户端错误,因此对方服务器接口应该是没有任何问题,可通过开启日志看看Feign…