63 lines
2.3 KiB
Bash
63 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
#################################################################
|
|
# 国内安装(使用阿里云镜像)
|
|
install_docker_cn() {
|
|
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
|
|
sudo apt-get remove -y $pkg 2>/dev/null || true
|
|
done
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y ca-certificates curl gnupg
|
|
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
|
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
sudo usermod -aG docker $USER
|
|
}
|
|
|
|
#################################################################
|
|
# 国外安装(使用官方源)
|
|
install_docker_intl() {
|
|
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
|
|
sudo apt-get remove -y $pkg 2>/dev/null || true
|
|
done
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y ca-certificates curl gnupg
|
|
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
|
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" |
|
|
sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
sudo usermod -aG docker $USER
|
|
}
|
|
|
|
# 根据环境变量选择安装方式(须在函数定义之后调用)
|
|
if [ "$CN_REGION" = "1" ]; then
|
|
echo "[INFO] 国内环境,使用阿里云镜像安装 Docker"
|
|
install_docker_cn
|
|
else
|
|
echo "[INFO] 国外环境,使用官方源安装 Docker"
|
|
install_docker_intl
|
|
fi
|
|
|
|
echo "[INFO] Docker 安装完成,请重新登录或运行: source ~/.config/fish/config.fish"
|