本文最后更新于2023年6月16日,已超过 6 个月没有更新,内容可能不兼容或已失效

由于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
最后更新于 2023-06-16