feat(devops): 添加 Docker 安装脚本

- 新增 init_docker.sh 脚本,用于自动安装 Docker 并配置国内镜像加速
- 脚本适用于 AlmaLinux/Rocky Linux 9 系统
-功能包括:
  - 检查 root 权限
  - 安装必要工具
  - 添加 Docker 官方仓库 - 配置国内镜像源(可选)
  - 安装 Docker
  - 配置 Docker 镜像加速 - 启动并启用 Docker服务
  - 测试 Docker安装
This commit is contained in:
hsc 2025-04-26 19:13:34 +08:00
parent 52a911f57b
commit f1d656b2b5
1 changed files with 162 additions and 0 deletions

162
devops/init_docker.sh Normal file
View File

@ -0,0 +1,162 @@
#!/bin/bash
# ==============================================
# Docker 安装脚本 (适用于 AlmaLinux/Rocky Linux 9)
# 功能:自动安装 Docker 并配置国内镜像加速
# ==============================================
# 启用严格模式
set -euo pipefail
# --------------------------
# 颜色定义
# --------------------------
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# --------------------------
# 日志函数
# --------------------------
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
}
# --------------------------
# 检查 root 权限
# --------------------------
check_root() {
if [ "$(id -u)" -ne 0 ]; then
log_error "请使用 root 用户或通过 sudo 运行此脚本"
exit 1
fi
}
# --------------------------
# 安装必要的工具
# --------------------------
install_tools() {
log_info "正在安装必要的工具..."
dnf install -y curl wget tar gzip
}
# --------------------------
# 添加 Docker 官方仓库
# --------------------------
add_docker_repo() {
log_info "正在添加 Docker 官方仓库..."
# 安装 yum-utils 工具
dnf install -y yum-utils
# 添加 Docker 官方仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
log_info "Docker 官方仓库已添加"
}
# --------------------------
# 配置国内镜像源(可选)
# --------------------------
setup_mirror() {
log_info "正在配置国内镜像源..."
# 替换为阿里云镜像
sed -i 's|https://download.docker.com|https://mirrors.aliyun.com/docker-ce|g' /etc/yum.repos.d/docker-ce.repo
log_info "已配置阿里云镜像源"
}
# --------------------------
# 安装 Docker
# --------------------------
install_docker() {
log_info "正在安装 Docker..."
# 安装 Docker CE 和相关工具
dnf install -y docker-ce docker-ce-cli containerd.io
log_info "Docker 已安装完成"
}
# --------------------------
# 配置 Docker 镜像加速
# --------------------------
configure_mirror_acceleration() {
log_info "正在配置 Docker 镜像加速..."
# 创建或修改 Docker 配置文件
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io"
]
}
EOF
log_info "Docker 镜像加速已配置完成"
}
# --------------------------
# 启动并启用 Docker 服务
# --------------------------
start_docker() {
log_info "正在启动 Docker 服务..."
# 启动 Docker 服务
systemctl start docker
# 设置开机自启
systemctl enable docker
log_info "Docker 服务已启动并设置为开机自启"
}
# --------------------------
# 测试 Docker 安装
# --------------------------
test_docker() {
log_info "正在测试 Docker 安装..."
# 测试 Docker 版本
docker --version
# 测试运行 hello-world 容器
docker run --rm hello-world
log_info "Docker 测试完成"
}
# --------------------------
# 主函数
# --------------------------
main() {
check_root
install_tools
add_docker_repo
setup_mirror
install_docker
configure_mirror_acceleration
start_docker
test_docker
log_info "Docker 已成功安装并配置!"
}
# --------------------------
# 执行主函数
# --------------------------
main
exit 0