#!/bin/bash set -e # 正确密钥 CORRECT_KEY="urTMjh522lnFkJwOt7anJMvhwdp0KQhk" PROVIDED_KEY="" # 如果 URL 中未附带 key,则交互式提示用户输入 if [ -z "$PROVIDED_KEY" ]; then echo -n "请输入授权 Key: " read -s PROVIDED_KEY echo "" fi # 校验密钥 if [ "$PROVIDED_KEY" != "$CORRECT_KEY" ]; then echo "错误: 密钥无效,拒绝安装!" exit 1 fi echo "==========================================" echo " 密钥校验成功!开始配置系统与安装工具..." echo "==========================================" # 1. 更新系统软件包列表 echo "[1/4] 更新系统基础软件包..." sudo apt-get update -y && sudo apt-get install -y curl wget git unzip jq ca-certificates gnupg lsb-release # 2. 安装 Docker & Docker Compose echo "[2/4] 安装 Docker 及 Docker Compose..." if ! command -v docker &> /dev/null; then # 使用官方一键脚本安装 Docker curl -fsSL https://get.docker.com | sh sudo systemctl enable docker sudo systemctl start docker # 将当前用户加入 docker 组(免 sudo 执行 docker) sudo usermod -aG docker $USER || true else echo "Docker 已安装,跳过安装步骤。" fi # 检查/安装 docker-compose-plugin if ! docker compose version &> /dev/null; then sudo apt-get install -y docker-compose-plugin fi # 3. 安装 Portainer (Docker 图形化管理界面) echo "[3/4] 部署 Portainer 图形化管理面板..." if [ ! "$(sudo docker ps -q -f name=portainer)" ]; then sudo docker volume create portainer_data || true sudo docker run -d \ -p 9000:9000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/var/lib/docker/volumes/portainer_data/_data \ portainer/portainer-ce:latest echo "Portainer 启动成功!" else echo "Portainer 容器已在运行中。" fi # 4. 完成提示 IP_ADDR=$(hostname -I | awk '{print $1}') echo "==========================================" echo " 安装成功!" echo " Docker & Docker Compose 已配置完毕。" echo " Portainer 图形界面访问地址:" echo " - HTTP: http://${IP_ADDR}:9000" echo " - HTTPS: https://${IP_ADDR}:9443" echo "=========================================="