<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      作者信息:https://home.cnblogs.com/u/huangjiabobk

      在運維工作中,如何批量將當前目錄下所有的 .tar 鏡像文件通過 docker load -i 導入到本地 Docker 環境中,并顯示進度和結果。

      當然可以!以下是一個完整的 Shell 腳本,用于:

      1. 批量 docker load -i xxx.tar 導入鏡像
      2. 為每個鏡像打上指定 Harbor 倉庫的標簽(tag)
      3. 推送到 Harbor 鏡像倉庫

      ?? 假設信息(請根據實際情況修改)

      • Harbor 地址: harbor.example.com
      • 項目名稱: myproject
      • 版本標簽: v3.4.0(從文件名提取也可自定義)
      • Harbor 用戶名/密碼: admin / Harbor12345

      示例:將 alarm-handler-v3.4.0_20250725104119.tar → 推送為 harbor.example.com/myproject/alarm-handler:v3.4.0


      ? 完整腳本:load_and_push_to_harbor.sh

      #!/bin/bash
      
      # ========================================
      # 批量導入并推送 Docker 鏡像到 Harbor
      # 作者: Assistant
      # 時間: $(date '+%Y-%m-%d %H:%M')
      # ========================================
      
      # ?? 配置區(請按需修改)
      HARBOR_REGISTRY="harbor.example.com"    # 替換為你的 Harbor 地址
      HARBOR_PROJECT="myproject"              # 替換為你的項目名
      IMAGE_VERSION="v3.4.0"                  # 鏡像版本標簽(可統一設置)
      HARBOR_USER="admin"                     # Harbor 用戶名
      HARBOR_PASS="Harbor12345"               # Harbor 密碼(建議使用 token 更安全)
      
      # 統計變量
      success_load=0
      fail_load=0
      success_push=0
      fail_push=0
      total=0
      
      echo "=========================================="
      echo "     開始批量導入并推送到 Harbor"
      echo "     Registry: $HARBOR_REGISTRY/$HARBOR_PROJECT"
      echo "     當前時間: $(date '+%Y-%m-%d %H:%M:%S')"
      echo "=========================================="
      
      # 檢查是否安裝 docker
      if ! command -v docker &> /dev/null; then
          echo "? 錯誤: docker 未安裝或不在 PATH 中。"
          exit 1
      fi
      
      # 登錄 Harbor
      echo "?? 正在登錄 Harbor: $HARBOR_REGISTRY"
      if docker login "$HARBOR_REGISTRY" -u "$HARBOR_USER" -p "$HARBOR_PASS" > /tmp/docker_login.log 2>&1; then
          echo "? Harbor 登錄成功"
      else
          echo "? Harbor 登錄失敗,請檢查用戶名/密碼或網絡"
          cat /tmp/docker_login.log
          rm -f /tmp/docker_login.log
          exit 1
      fi
      rm -f /tmp/docker_login.log
      
      # 遍歷所有 .tar 文件
      for tar_file in *.tar; do
          # 跳過無匹配文件
          if [ ! -f "$tar_file" ]; then
              echo "??  當前目錄沒有找到任何 .tar 文件。"
              break
          fi
      
          total=$((total + 1))
          image_base=$(basename "$tar_file" .tar)  # 如 alarm-handler-v3.4.0_20250725104119
          image_name_part=$(echo "$image_base" | sed -E 's/-v[0-9]+\.[0-9]+\.[0-9]+.*//')  # 提取 service 名稱
      
          echo
          echo "?? 處理文件: $tar_file"
      
          # 1. Load 鏡像
          echo "   ? 導入鏡像: docker load -i $tar_file"
          LOADED_IMAGE=$(docker load -i "$tar_file" 2>/dev/null | grep "Loaded image:" | sed 's/^Loaded image: //')
          if [ -z "$LOADED_IMAGE" ]; then
              echo "   ? 導入失敗或未識別鏡像名"
              fail_load=$((fail_load + 1))
              continue
          else
              echo "   ? 導入成功,鏡像名: $LOADED_IMAGE"
              success_load=$((success_load + 1))
          fi
      
          # 構建目標鏡像名
          DEST_IMAGE="$HARBOR_REGISTRY/$HARBOR_PROJECT/$image_name_part:$IMAGE_VERSION"
      
          # 2. 打標簽
          echo "   ???  打標簽: $DEST_IMAGE"
          if docker tag "$LOADED_IMAGE" "$DEST_IMAGE"; then
              echo "   ? 標簽成功"
          else
              echo "   ? 打標簽失敗"
              fail_push=$((fail_push + 1))
              continue
          fi
      
          # 3. 推送到 Harbor
          echo "   ?? 推送鏡像: $DEST_IMAGE"
          if docker push "$DEST_IMAGE"; then
              echo "   ? 推送成功"
              success_push=$((success_push + 1))
          else
              echo "   ? 推送失敗"
              fail_push=$((fail_push + 1))
          fi
      done
      
      # 輸出統計結果
      echo
      echo "=========================================="
      echo "?? 批量操作完成 summary:"
      echo "   總共處理: $total 個文件"
      echo "   成功導入: $success_load"
      echo "   導入失敗: $fail_load"
      echo "   成功推送: $success_push"
      echo "   推送失敗: $fail_push"
      echo "=========================================="
      
      # 如果有失敗,給出提示
      if [ $fail_load -gt 0 ] || [ $fail_push -gt 0 ]; then
          echo "?? 建議檢查:"
          echo "   - 鏡像文件是否完整(file *.tar)"
          echo "   - Docker 是否運行(systemctl status docker)"
          echo "   - Harbor 地址/項目名是否正確"
          echo "   - 網絡是否可達 Harbor"
          exit 1
      fi
      
      exit 0
      

      ?? 使用方法

      1. 保存腳本
      vim load_and_push_to_harbor.sh
      # 粘貼內容后保存
      
      1. 修改配置項
      HARBOR_REGISTRY="your.harbor.com"
      HARBOR_PROJECT="prod/dataexa"
      HARBOR_USER="robot\$xxx"
      HARBOR_PASS="xxxxx"
      

      ?? 生產環境建議使用 Harbor Robot Account Token 替代明文密碼。

      1. 添加執行權限
      chmod +x load_and_push_to_harbor.sh
      
      1. 運行腳本
      ./load_and_push_to_harbor.sh
      

      ?? 如果權限不足,可加 sudo,但注意 sudo 下可能無法讀取用戶配置的 Docker 憑據,推薦用普通用戶并加入 docker 組。


      ? 示例最終推送效果

      原始文件 推送后鏡像
      alarm-handler-v3.4.0_20250725104119.tar harbor.example.com/myproject/alarm-handler:v3.4.0
      video-handler-v3.4.0_20250725104119.tar harbor.example.com/myproject/video-handler:v3.4.0

      ?? 可選增強功能(如需可追加)

      • 支持從文件名自動提取版本號(如 v3.4.0
      • 并行推送加速
      • 記錄日志到文件
      • 支持 HTTPS 自簽名證書跳過
      • 加入 --dry-run 模式預覽
      posted @ 2025-10-13 13:36  黃嘉波  閱讀(38)  評論(0)    收藏  舉報
      版權聲明:原創作品,謝絕轉載!否則將追究法律責任。--作者 黃嘉波
      主站蜘蛛池模板: 色二av手机版在线| 欧洲人妻丰满av无码久久不卡| 麻豆国产va免费精品高清在线| 少妇被粗大的猛烈进出69影院一| 国产成人不卡一区二区| 亚洲日本乱码在线观看| 亚洲国产精品美日韩久久| 色综合久久综合久鬼色88| 亚洲精品久久7777777国产| 2019亚洲午夜无码天堂| 免费中文熟妇在线影片| 亚洲国产区男人本色vr| 不卡AV中文字幕手机看| 丰满大爆乳波霸奶| 麻豆tv入口在线看| 国产精品无遮挡又爽又黄| 亚洲国产高清第一第二区| 免费a级黄毛片| 开心五月婷婷综合网站| 国产成人啪精品午夜网站| 无码精品人妻一区二区三区湄公河| 亚洲码国产精品高潮在线| 国产精品成人亚洲一区二区| 三年片在线观看免费观看高清动漫| 精选国产av精选一区二区三区| 亚洲aⅴ男人的天堂在线观看| 国产一区二区三区小说| 精品无码国产一区二区三区AV| 蜜桃一区二区三区免费看| www国产亚洲精品久久网站| 凤台县| 强奷漂亮雪白丰满少妇av| 亚洲av日韩在线资源| 免费人成在线观看网站| 一区二区丝袜美腿视频| 熟女熟妇乱女乱妇综合网| 天堂网在线观看| 在线免费成人亚洲av| 97人妻无码一区| 成年女人片免费视频播放A| 午夜人成免费视频|