由于GFW内难以访问Debian和Docker官方源或速度过慢,再加上换源和安装Docker Engine步骤较为繁琐,就写了bash脚本方便切换国内源,一步到位安装Docker Engine
GitHub页面:KasuganoHaruku/docker-engine-install: A bash script to install docker-engine (github.com)
本站下载:http://pc.haruku.moe:8082/chfs/shared/git/docker-engine-install/docker.sh
使用方法:
1.下载脚本文件
wget https://raw.githubusercontent.com/KasuganoHaruku/docker-engine-install/main/docker.sh #使用GitHub下载
wget http://pc.haruku.moe:8082/chfs/shared/git/docker-engine-install/docker.sh #本站下载
2.更改文件权限
chmod +x ./docker.sh
3.执行脚本
./docker.sh
内容说明 版本:v1.1.0
1.选择Debian版本和要使用的镜像站
#!/bin/bash
echo -e "\e[32mChoose Debian Version(10/11): \e[0m"
vers=""
mirr=""
read vers #Select Debian version
if [ $vers -eq 11 ]
then
echo -e "\e[32mChoose Mirror: \e[0m"
echo -e "\e[36m1.USTC \e[0m"
echo -e "\e[36m2.Tsinghua Tuna \e[0m"
echo -e "\e[36m3.Aliyun \e[0m"
echo -e "\e[36m4.Neteast 163 \e[0m"
read mirr #Select mirror
elif [ $vers -eq 10 ]
then
mirr="1"
fi
2.检查Debian镜像源文件是否存在,存在则删除后重新创建空文件
#Recreate sources.list
filePath="/etc/apt/sources.list"
if [ ! -f "$filePath" ]
then
sudo touch $filePath
echo -e "\e[32mCreated file \e[0m"
else
sudo rm /etc/apt/sources.list
sudo touch $filePath
echo -e "\e[32mFile exists, removed and created \e[0m"
fi
sudo chmod 777 /etc/apt/sources.list
3.根据选择的镜像源写入文件
#Write new sources
if [ $vers -eq 11 ]
then
if [ $mirr -eq 1 ]
then
echo "---------------------------------"
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo cat /etc/apt/sources.list
echo -e "\e[32mDebian11 USTC Written \e[0m"
echo "---------------------------------"
elif [ $mirr -eq 2 ]
then
echo "---------------------------------"
sudo echo 'deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo cat /etc/apt/sources.list
echo -e "\e[32mDebian11 Tsinghua Tuna Written \e[0m"
echo "---------------------------------"
elif [ $mirr -eq 3 ]
then
echo "---------------------------------"
sudo echo 'deb https://mirrors.aliyun.com/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.aliyun.com/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo cat /etc/apt/sources.list
echo -e "\e[32mDebian11 Aliyun Written \e[0m"
echo "---------------------------------"
elif [ $mirr -eq 4 ]
then
echo "---------------------------------"
sudo echo 'deb http://mirrors.163.com/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src http://mirrors.163.com/debian/ bullseye main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb http://mirrors.163.com/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src http://mirrors.163.com/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb http://mirrors.163.com/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src http://mirrors.163.com/debian/ bullseye-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb http://mirrors.163.com/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src http://mirrors.163.com/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
sudo cat /etc/apt/sources.list
echo -e "\e[32mDebian11 Neteast 163 Written \e[0m"
echo "---------------------------------"
else
echo -e "\e[31mSource error! \e[0m"
exit
fi
elif [ $vers -eq 10 ]
then
echo "---------------------------------"
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free' >> /etc/apt/sources.list
sudo echo 'deb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free ' >> /etc/apt/sources.list
sudo echo 'deb-src https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free' >> /etc/apt/sources.list
sudo cat /etc/apt/sources.list
echo -e "\e[32mDebian10 Written \e[0m"
echo "---------------------------------"
else
echo -e "\e[31mVersion error! \e[0m"
exit
fi
4.安装依赖环境
echo -e "\e[36mInstall required environment \e[0m"
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg -y
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
5.设置Docker GPG Key和镜像源
echo -e "\e[36mSetup sources \e[0m"
if [ $mirr -eq 1 ]
then
echo -e "\e[36mInstall GPG Key \e[0m"
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
elif [ $mirr -eq 2 ]
then
echo -e "\e[36mInstall GPG Key \e[0m"
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
elif [ $mirr -eq 3 ]
then
echo -e "\e[36mInstall GPG Key \e[0m"
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.aliyun.com/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
elif [ $mirr -eq 4 ]
then
echo -e "\e[36mInstall GPG Key \e[0m"
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.163.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.163.com/docker-ce/linux/debian/ \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
else
echo -e "\e[31mSource error! \e[0m"
exit
fi
echo -e "\e[32mSuccess \e[0m"
echo "---------------------------------"
6.安装Docker Engine并测试
echo -e "\e[36mInstall Docker Engine \e[0m"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
echo -e "\e[32mInstalled \e[0m"
echo "---------------------------------"
echo -e "\e[36mFinished install, run test \e[0m"
sudo docker run hello-world
Comments NOTHING