一、Docker and Docker-compose 安装脚本
具体脚本代码如下
#!/bin/bash
docker -v &>/dev/null
if [ $? == 0 ];then
echo -e "[*] docker-ce 已经存在..."
echo -e "[*] 1、升级docker.\n2、卸载docker.\n3、卸载重新安装docker."
read -p ""
docker-compose -v &>/dev/null
if [ $? == 0 ];then
echo -e "[*] docker-compose 也已经存在..."
echo -e "[*] 退出安装程序.....exit...."
exit
fi
fi
echo -e "[*] 开始更新源...."
apt-get update -y
#apt-get upgrade -y
if [ $? != 0 ];then
echo -e "[*] sudo ./docker-install.sh"
exit
fi
echo -e "[*] 开始安装 docker-ce..."
apt-get install docker-ce -y
if [ $? != 0 ];then
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
apt-get update
cache=`apt-cache search docker-ce`
if [ ! -n "$cache" ];then
echo -e "[*] 添加ali源....."
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
fi
apt-get install docker-ce -y
if [ $? != 0 ];then
printf "Y\ny\n" | apt-get install docker-ce
fi
fi
docker -v
if [ $? != 0 ];then
echo -e "[-] docker-ce 安装失败....."
exit
else
echo -e "[+] docker-ce 安装成功....."
fi
echo -e "[*] 开始安装 docker-compose....."
#apt install docker-compose -y
curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
if [ $? == 0 ];then
echo -e "[+] docker-compose 安装成功....."
fi
运行安装脚本:
#给脚本被赋予用户执行权限
chmod u+x docker-install.sh
#执行脚本,开始安装
sudo ./docker-install.sh
二、升级版本~
升级版的安装脚本第一次安装如果有问题的话,进行第二次安装就行了。
#!/bin/bash
###更新函数###
function update_source(){
echo -e "[*] 开始更新源...."
apt-get update -y
#apt-get upgrade -y
if [ $? != 0 ];then
echo -e "[*] sudo ./docker-install.sh"
exit
fi
}
###安装docker-ce函数###
function install_docker_ce(){
echo -e "[*] 开始安装 docker-ce..."
apt-get install docker-ce -y
if [ $? != 0 ];then
#apt-get install -y apt-transport-https ca-certificates curl software-properties-common
printf "Y\n" |apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
printf "Y\n" |curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
cache=`apt-cache search docker-ce`
if [ ! -n "$cache" ];then
echo -e "[*] 添加ali源....."
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
#apt-get install docker-ce -y
fi
apt-get install docker-ce docker-ce-cli containerd.io -y
if [ $? != 0 ];then
printf "Y\ny\n" | apt-get install docker-ce
fi
fi
docker -v
if [ $? != 0 ];then
echo -e "[-] docker-ce 安装失败.....";exit
else
echo -e "[+] docker-ce 安装成功....."
fi
}
###卸载docker-ce函数###
function remove_docker_ce(){
printf "Y\n" |apt-get remove docker docker-engine docker.io containerd runc
printf "Y\n" |apt-get purge docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
docker -v
if [ $? != 0 ];then
echo -e "[*] docker卸载成功..."
else
echo -e "[-] docker-ce卸载失败..."
echo -e "[-] sudo ./docker_install.sh";exit
fi
}
###安装docker-compose函数###
function install_docker_compose(){
echo -e "[*] 开始安装 docker-compose....."
#apt install docker-compose -y
#下载docker稳定版.......
curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
if [ $? == 0 ];then
echo -e "[+] docker-compose 安装成功......"
else
echo -e "[-] docker-compose 安装失败......"
fi
}
###卸载docker-compose-函数
function remove_docker_compose(){
echo -e "[*] 开始卸载docker-compose..."
rm /usr/local/bin/docker-compose
docker-compose -v
if [ $? != 0 ];then
echo -e "[*] docker-compose卸载成功..."
else
echo -e "[-] docker-compose卸载失败...";exit
fi
}
docker -v &>/dev/null
if [ $? == 0 ];then
echo -e "[*] docker-ce 已经存在..."
echo -e "1、升级docker.\n2、仅卸载docker.\n3、卸载重新安装docker."
read -p "Please enter your choice?: " num
if [ $num == 1 ];then
echo -e "[*] 开始升级docker-ce.."
update_source
install_docker_ce
elif [ $num == 2 ];then
echo -e "[*] 开始卸载docker-ce..."
remove_docker_ce
elif [ $num == 3 ];then
echo -e "卸载重新安装docker-ce"
remove_docker_ce
update_source
install_docker_ce
elif [ $num == 'q' ];then
echo -e "[*] 退出安装docker-ce程序...";
else
exit
fi
else
update_source
install_docker_ce
fi
docker-compose -v &>/dev/null
if [ $? == 0 ];then
echo -e "[*] docker-compose 也已经存在..."
echo -e "1、升级docker-compose.\n2、仅卸载docker-compose.\n3、卸载重新安装docker-compose."
read -p "Please enter your choice?: " num2
if [ $num2 == 1 ];then
echo -e "[*] 开始升级docker-compose..."
echo -e "[*] 该功能在升级中..";exit
#docker-compose migrate-to-labels
elif [ $num2 == 2 ];then
remove_docker_compose
elif [ $num2 == 3 ];then
echo -e "卸载重新安装docker-compose"
remove_docker_compose
update_source
install_docker_compose
elif [ $num2 == 'q' ];then
echo -e "[*] 退出安装程序...";exit
else
exit
fi
#echo -e "[*] 退出安装程序.....exit....";exit
else
update_source
install_docker_compose
fi
要在桥接的模式下运行安装脚本!!:
参考文章:
- https://docs.docker.com/compose/install/#prerequisites
- https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script