deploy_docker.sh

完整脚本代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash

# Docker 自动化安装部署脚本
# 功能:自动安装 Docker 并配置国内镜像加速

# 1) 卸载系统中已经存在的 docker 软件
remove_docker(){
echo "正在卸载旧版本 Docker..."
dnf autoremove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
echo "旧版本 Docker 卸载完成"
}

# 2) 安装环境依赖软件包
install_packages(){
echo "正在安装依赖软件包..."
dnf install -y gcc gcc-c++ yum-utils epel-release
echo "依赖软件包安装完成"
}

# 3) 配置阿里云 docker 仓库
conf_docker_yum(){
echo "正在配置阿里云 Docker 仓库..."
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache
echo "阿里云 Docker 仓库配置完成"
}

# 4) 安装 docker
install_docker(){
echo "正在安装 Docker..."
dnf install -y docker-ce docker-ce-cli containerd.io
echo "Docker 安装完成"
}

# 5) 启动 docker
start_docker(){
echo "正在启动 Docker 服务..."
systemctl start docker
systemctl enable docker
echo "Docker 服务状态:"
systemctl status docker --no-pager -l
echo "Docker 版本信息如下:"
docker version
}

# 6) 配置 docker 加速
conf_docker(){
echo "正在配置 Docker 镜像加速..."
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://dytt.online",
"https://lispy.org"
]
}
EOF
systemctl daemon-reload && systemctl restart docker
echo "Docker 镜像加速配置完成"
}

# 7) 测试 docker
test_docker(){
echo "正在测试 Docker 安装..."
docker run hello-world
echo "Docker 测试完成"
}

# 8) 执行 docker 安装并运行测试
main(){
echo "开始 Docker 自动化安装部署..."
remove_docker
install_packages
conf_docker_yum
install_docker
start_docker
conf_docker
test_docker
echo "Docker 安装部署完成!"
}

# 执行主函数
main "$@"