Ai
1 Star 0 Fork 0

DaTree/docker_onekey_setup

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
start.sh 6.84 KB
一键复制 编辑 原始数据 按行查看 历史
DaTree 提交于 2022-09-13 20:33 +08:00 . 更新脚本,解决报出路径不存在的问题
#!/bin/sh
# 主工作进程
useage() {
while true; do
echo ""
echo -e "\033[42;37m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 欢迎使用docker运维脚本: powerd by datree. \033[0m"
echo -e "\033[42;37m 请选择您要使用的功能: \033[0m"
echo -e "\033[36m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a 全新安装docker \033[0m"
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> b 卸载已安装的docker \033[0m"
echo -e "\033[36m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> c 安装docker-compose \033[0m"
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> d 卸载docker-compose \033[0m"
echo -e "\033[35m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> p 迁移docker工作目录 \033[0m"
echo " >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> q 退出程序"
read command
case $command in
"a")
install_docker
;;
"b")
uninstall_docker
;;
"c")
install_compose
;;
"d")
unistall_compose
;;
"p")
move_root_dir
;;
"q")
exit 1
;;
*)
echo "输入错误请重新输入:"
continue
;;
esac
done
}
# 安装docker方法
install_docker() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>开始安装docker"
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>关闭防火墙"
systemctl stop firewalld
wait
systemctl disable firewalld
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>进入libs工作目录"
cd ./libs
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>复制配置文件"
cp -f docker.service.bak docker.service
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>开始解压文件"
tar -zxvf docker-20.10.5.tgz
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>移动文件"
cp -f docker/* /usr/bin/
wait
rm -rf docker
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>创建docker_root"
docker_root=$(dirname "$PWD")/docker_root
wait
mkdir -p $docker_root
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>更新配置文件"
sed -i "s#dockerlibpath#$docker_root#g" docker.service
wait
mv -f docker.service /etc/systemd/system/
wait
chmod 777 /etc/systemd/system/docker.service
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>重载守护程序"
systemctl daemon-reload
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>启动docker<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
systemctl start docker
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>设置docker开机启动<<<<<<<<<<<<<<<<<<<<<<<"
systemctl enable docker.service
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>查看docker版本"
docker -v
wait
cd ../
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>docker安装完成"
}
# 卸载docker方法
uninstall_docker() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>关闭防火墙"
systemctl stop firewalld
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>停止docker服务"
systemctl stop docker
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>禁用docker服务开机启动"
systemctl disable docker
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>删除docker.service启动文件"
filepath=$(getServiceFilePath)
rm -rf $filepath
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>删除docker的安装文件"
rm -rf /usr/bin/docker*
wait
rm -rf /usr/bin/containerd-shim
wait
rm -rf /usr/bin/ctr
wait
rm -rf /usr/bin/runc
wait
rm -rf /usr/bin/containerd-shim-runc-v2
wait
rm -rf /usr/bin/containerd
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>重载守护程序"
systemctl daemon-reload
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>处理完成"
}
#安装 docker-compose
install_compose() {
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>开始安装docker-compose"
cd ./libs
cp -f ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
wait
chmod +x /usr/local/bin/docker-compose
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>查看docker-compose版本"
docker-compose -v
wait
cd ../
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>安装docker-compose完成"
}
#卸载 docker-compose
unistall_compose() {
rm -rf /usr/local/bin/docker-compose
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>docker-compose卸载完成"
}
# 获取docker工作目录
getRootDir() {
root_dir=$(docker info)
root_dir=$(echo $root_dir | grep -P 'Docker Root Dir:.*Debug Mode' -o)
root_dir=$(echo ${root_dir##*Docker Root Dir: })
root_dir=$(echo ${root_dir% Debug Mode})
echo $root_dir
}
# 获取docker配置文件目录
getServiceFilePath() {
filepath=$(systemctl status docker)
filepath=$(echo $filepath | grep -P 'loaded .*docker.service;' -o)
filepath=$(echo ${filepath##*loaded (})
filepath=$(echo ${filepath%;})
echo $filepath
}
# 移动docker工作目录
move_root_dir() {
root_dir=$(getRootDir)
echo -e "\033[41;37m 已获取Docker Root Dir 为:$root_dir \033[0m"
filepath=$(getServiceFilePath)
echo -e "\033[41;37m 已获取配置文件路径为:$filepath \033[0m"
echo -e "\033[44;37m >>>>>>>>>>>>>>>>>>>>>>>>>请输入新docker路径,默认为当前路径$(pwd)/docker_root \033[0m"
read -p "新的docker工作目录路径:" root_path # 如果输入的路径为空则使用当前目录
if [ -z "$root_path" ]; then
echo "未输入新路径使用默认路径:"
root_path=$(pwd)/docker_root
fi
mkdir -p $root_path # 为新路径创建文件夹
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>关闭防火墙"
systemctl stop firewalld
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>停止docker服务"
systemctl stop docker
wait
# 根据标记判断如何更新配置文件
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>查找--graph=标记"
fileContent=$(cat $filepath)
includeResult=$(echo $fileContent | grep graph)
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>更新配置文件"
if [ "$includeResult" != "" ]; then
sed -i "s#--graph=$root_dir#--graph=$root_path#g" $filepath
else
sed -i "s#ExecStart=/usr/bin/dockerd#ExecStart=/usr/bin/dockerd --graph=$root_path#g" $filepath
fi
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>正在迁移目录请稍候"
cp -R $root_dir/* $root_path
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>重载守护程序"
systemctl daemon-reload
wait
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>启动docker服务"
systemctl start docker
wait
echo -e "\033[45;37m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>迁移成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
}
useage
# echo -e "\033[30m 黑色字 \033[0m"
# echo -e "\033[31m 红色字 \033[0m"
# echo -e "\033[32m 绿色字 \033[0m"
# echo -e "\033[33m 黄色字 \033[0m"
# echo -e "\033[34m 蓝色字 \033[0m"
# echo -e "\033[35m 紫色字 \033[0m"
# echo -e "\033[36m 天蓝字 \033[0m"
# echo -e "\033[37m 白色字 \033[0m"
# echo -e "\033[40;37m 黑底白字 \033[0m"
# echo -e "\033[41;37m 红底白字 \033[0m"
# echo -e "\033[42;37m 绿底白字 \033[0m"
# echo -e "\033[43;37m 黄底白字 \033[0m"
# echo -e "\033[44;37m 蓝底白字 \033[0m"
# echo -e "\033[45;37m 紫底白字 \033[0m"
# echo -e "\033[46;37m 天蓝底白字 \033[0m"
# echo -e "\033[47;30m 白底黑字 \033[0m"
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/DaTree/docker_onekey_setup.git
git@gitee.com:DaTree/docker_onekey_setup.git
DaTree
docker_onekey_setup
docker_onekey_setup
master

搜索帮助