代码拉取完成,页面将自动刷新
#!/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"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。