更新 docker.sh
This commit is contained in:
parent
d49a759c17
commit
1b96bdfeee
118
docker.sh
118
docker.sh
@ -1,91 +1,51 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 默认使用国内镜像
|
# 检查是否为root用户
|
||||||
USE_CHINA_MIRROR="yes"
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "请使用root用户或通过sudo运行此脚本"
|
||||||
# 询问用户是否使用国内镜像
|
|
||||||
read -p "是否使用国内镜像站点安装 Docker 和 Docker Compose? [yes/no] (默认: yes): " USE_CHINA_MIRROR
|
|
||||||
USE_CHINA_MIRROR=${USE_CHINA_MIRROR:-yes}
|
|
||||||
|
|
||||||
# 设置镜像站点
|
|
||||||
if [ "$USE_CHINA_MIRROR" = "yes" ]; then
|
|
||||||
DOCKER_MIRROR="https://mirrors.aliyun.com/docker-ce"
|
|
||||||
DOCKER_COMPOSE_URL="https://get.daocloud.io/docker/compose/releases/download"
|
|
||||||
echo "使用国内镜像站点安装 Docker 和 Docker Compose。"
|
|
||||||
else
|
|
||||||
DOCKER_MIRROR="https://download.docker.com"
|
|
||||||
DOCKER_COMPOSE_URL="https://github.com/docker/compose/releases/download"
|
|
||||||
echo "使用官方站点安装 Docker 和 Docker Compose。"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 方法 1: 固定版本号(根据需要手动更新)
|
|
||||||
DOCKER_COMPOSE_VERSION="v2.35.1"
|
|
||||||
|
|
||||||
# 方法 2: 从阿里云镜像站点获取版本号(无需访问 GitHub)
|
|
||||||
if [ "$USE_CHINA_MIRROR" = "yes" ]; then
|
|
||||||
DOCKER_COMPOSE_VERSION=$(curl -s https://mirrors.aliyun.com/docker-ce/linux/static/stable-x86_64/ | grep -oP 'docker-compose-\K.*(?=-linux-x86_64)' | tail -1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 检测操作系统类型
|
|
||||||
if [ -f /etc/os-release ]; then
|
|
||||||
. /etc/os-release
|
|
||||||
OS=$ID
|
|
||||||
VERSION=$VERSION_ID
|
|
||||||
else
|
|
||||||
echo "无法检测操作系统类型"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 安装 Docker
|
# 询问是否使用国内镜像
|
||||||
install_docker() {
|
read -p "是否使用国内镜像源?(y/n,默认为n): " use_mirror
|
||||||
case $OS in
|
use_mirror=${use_mirror:-n}
|
||||||
"debian")
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
|
|
||||||
curl -fsSL ${DOCKER_MIRROR}/linux/debian/gpg | sudo apt-key add -
|
|
||||||
sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/debian $(lsb_release -cs) stable"
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
|
|
||||||
;;
|
|
||||||
"ubuntu")
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
|
|
||||||
curl -fsSL ${DOCKER_MIRROR}/linux/ubuntu/gpg | sudo apt-key add -
|
|
||||||
sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/ubuntu $(lsb_release -cs) stable"
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
|
|
||||||
;;
|
|
||||||
"centos"|"rocky"|"almalinux")
|
|
||||||
sudo yum install -y yum-utils
|
|
||||||
sudo yum-config-manager --add-repo ${DOCKER_MIRROR}/linux/centos/docker-ce.repo
|
|
||||||
sudo yum install -y docker-ce docker-ce-cli containerd.io
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "不支持的操作系统: $OS"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# 启动并启用 Docker 服务
|
# 安装依赖
|
||||||
sudo systemctl start docker
|
apt-get update
|
||||||
sudo systemctl enable docker
|
apt-get install -y \
|
||||||
}
|
apt-transport-https \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
gnupg \
|
||||||
|
lsb-release
|
||||||
|
|
||||||
|
# 添加Docker官方GPG密钥
|
||||||
|
if [ "$use_mirror" = "y" ] || [ "$use_mirror" = "Y" ]; then
|
||||||
|
echo "使用国内镜像源..."
|
||||||
|
# 使用阿里云镜像
|
||||||
|
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
echo \
|
||||||
|
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
|
||||||
|
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
else
|
||||||
|
echo "使用官方Docker源..."
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
echo \
|
||||||
|
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 安装Docker引擎
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||||
|
|
||||||
# 安装Docker Compose
|
# 安装Docker Compose
|
||||||
install_docker_compose() {
|
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||||
echo "正在安装 Docker Compose 版本: $DOCKER_COMPOSE_VERSION"
|
curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
sudo curl -L "${DOCKER_COMPOSE_URL}/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
chmod +x /usr/local/bin/docker-compose
|
||||||
sudo chmod +x /usr/local/bin/docker-compose
|
|
||||||
}
|
|
||||||
|
|
||||||
# 主函数
|
# 验证安装
|
||||||
main() {
|
|
||||||
install_docker
|
|
||||||
install_docker_compose
|
|
||||||
|
|
||||||
echo "Docker 和 Docker Compose 安装完成!"
|
|
||||||
docker --version
|
docker --version
|
||||||
docker-compose --version
|
docker-compose --version
|
||||||
}
|
|
||||||
|
|
||||||
main
|
echo "Docker和Docker Compose安装完成!"
|
Loading…
x
Reference in New Issue
Block a user