Linux脚本 - 离线安装Docker

  1. 下载Docker离线包,下载文件:
    containerd.io_1.4.12-1_amd64.deb
    docker-ce-cli_20.10.123-0ubuntu-focal_amd64.deb
    docker-ce_20.10.123-0ubuntu-focal_amd64.deb
  2. 离线包和脚本放在同一目录下
  3. 脚本授权:chmod 755 install_docker.sh
  4. 执行脚本,等待输出提示
#!/bin/bash

# 当前目录,即 .deb 文件与脚本所在目录
DEB_DIR="$(dirname "$0")"

# 进入 .deb 文件目录
cd "$DEB_DIR" || { echo "[ERROR] 目录不存在: $DEB_DIR"; exit 1; }

# 修改服务器时间
sudo timedatectl set-timezone Asia/Shanghai

# 定义要安装的 .deb 文件列表
DEB_FILES=(
    "containerd.io_1.4.12-1_amd64.deb"
    "docker-ce-cli_20.10.12_3-0_ubuntu-focal_amd64.deb"
    "docker-ce_20.10.12_3-0_ubuntu-focal_amd64.deb"
)

# 遍历并安装所有 .deb 文件
for deb_file in "${DEB_FILES[@]}"; do
    if [[ -f "$deb_file" ]]; then
        echo "[INFO] 安装 $deb_file ..."
        sudo dpkg -i "$deb_file"
    else
        echo "[ERROR] 找不到文件: $deb_file"
        exit 1
    fi
done

# 检查并修复任何未满足的依赖关系
echo "[INFO] 检查并修复依赖问题..."
if sudo dpkg --configure -a && sudo apt-get install -f -y; then
    echo "[INFO] 依赖问题修复完成"
else
    echo "[ERROR] 依赖修复失败,请检查手动解决"
    exit 1
fi

# 启动并设置 Docker 开机自启动
echo "[INFO] 启动 Docker 服务并设置开机自启动..."
sudo systemctl enable docker
sudo systemctl start docker

# 验证 Docker 安装和服务启动
echo "[INFO] 验证 Docker 安装..."
if docker --version; then
    echo "[INFO] Docker 安装成功,验证服务状态..."
    
    # 验证 Docker 服务是否运行
    if systemctl is-active --quiet docker; then
        echo "[INFO] Docker 服务正在运行"
    else
        echo "[ERROR] Docker 服务未能成功启动"
        exit 1
    fi
else
    echo "[ERROR] Docker 安装失败,请检查安装文件或依赖"
    exit 1
fi
digitalWrite(LED_SOUTH_YELLOW, HIGH); delay(500); digitalWrite(LED_SOUTH_YELLOW, LOW); delay(500); 以下是离线安装 DockerDocker Compose 的脚本: 1. 离线安装 Docker ```bash # 下载 } // 熄灭黄灯,点亮红灯 digitalWrite(LED_SOUTH_YELLOW, LOW); digitalWrite(LED_SOUTH Docker 安装包 wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.13.tgz _RED, HIGH); // 倒计时重置为10秒 countdownTime = 10; // 切换到东西# 解压安装包 tar -xvf docker-19.03.13.tgz # 将 Docker 可执行文件移动方向通行 isSouthNorth = false; isEastWest = true; } } // 倒计时每秒减1 delay(1000); countdownTime--; // 如果按下了按键,修改倒计时时间、到 /usr/bin 目录下 sudo mv docker/* /usr/bin/ # 添加 Docker 用户组 sudo groupadd docker # 将人行道控制或紧急状态控制 if (digitalRead(BUTTON_EAST_WEST) == LOW) { 当前用户添加到 Docker 用户组 sudo usermod -aG docker $USER # 重启 Docker 服务 sudo systemctl restart // 修改倒计时时间 countdownTime = 20; } if (digitalRead(BUTTON_PEDESTRIAN) == docker ``` 2. 离线安装 Docker Compose ```bash # 下载 Docker Compose 安装包 wget https LOW) { // 控制人行道通行 isPedestrian = true; } if (digitalRead(B://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 # 将 Docker Compose 移UTTON_SOUTH_NORTH) == LOW) { // 控制紧急状态 digitalWrite(LED_EAST_RED, HIGH); digitalWrite动到 /usr/local/bin 目录下并改名为 docker-compose sudo mv docker-compose-Linux-x86_64 /usr/local(LED_SOUTH_RED, HIGH); delay(1000); digitalWrite(LED_EAST_RED, LOW); digitalWrite(LED_SOUTH_RED,/bin/docker-compose # 添加可执行权限 sudo chmod +x /usr/local/bin/docker-compose ``` 注意:以上脚本中 LOW); } } void displayCountdown(int seconds) { LedControl lc = LedControl(MATRIX_DIN, MATRIX_CLK, MATRIX的 DockerDocker Compose 版本号可能需要根据实际情况进行修改。另外,如果你的服务器没有网络_CS, 1); if (seconds >= 10) { lc.setDigit(0, 0, seconds / 10,连接,需要手动下载 DockerDocker Compose 安装包,并将它们移动到服务器上进行安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值