feat(devops): 添加 Docker 安装脚本
- 新增 init_docker.sh 脚本,用于自动安装 Docker 并配置国内镜像加速 - 脚本适用于 AlmaLinux/Rocky Linux 9 系统 -功能包括: - 检查 root 权限 - 安装必要工具 - 添加 Docker 官方仓库 - 配置国内镜像源(可选) - 安装 Docker - 配置 Docker 镜像加速 - 启动并启用 Docker服务 - 测试 Docker安装
This commit is contained in:
parent
52a911f57b
commit
f1d656b2b5
|
|
@ -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
|
||||||
Loading…
Reference in New Issue