查看: 57|回复: 0

[工具分享] 分享一种docker镜像拉取方法

[复制链接]
累计签到:341 天
连续签到:5 天

1063

主题

-17

回帖

1万

积分

热心会员

名望
126
星币
4868
星辰
9
好评
264
发表于 前天 15:34 | 显示全部楼层 |阅读模式

注册登录后全站资源免费查看下载

您需要 登录 才可以下载或查看,没有账号?立即注册

×
方法来源于在国内使用脚本轻松拉取dockerhub镜像方法 - 知乎,操作如下:
1、ssh连接docker,我的环境是群晖;
2、输入:vi pull_image.sh,粘贴如下代码

  1. #!/bin/bash -e
  2. ###############################################################################
  3. # Copyright (c) 2024, 深圳市东微智能科技股份有限公司. All rights reserved.
  4. #
  5. # Author: weifangnan
  6. # Date: 2024-11-29 08:06:45
  7. # LastEditors: weifangnan
  8. # LastEditTime: 2024-11-29 09:36:15
  9. # Description: 国内拉取镜像加速
  10. ###############################################################################

  11. # 检查是否传递了目标参数
  12. if [ $# -ne 1 ]; then
  13.     echo "Usage: $0 <docker image>"
  14.     exit
  15. fi

  16. IMG=$1

  17. ###############################################################################
  18. # DockerHub 镜像源列表
  19. DOCKERHUB_REGISTRY_MIRRORS=(
  20.     # "hub.xdark.top"
  21.     # "hub.littlediary.cn"
  22.     # "dockerpull.org"
  23.     # "hub.crdz.gq"
  24.     "docker.1panel.live"
  25.     "docker.unsee.tech"
  26.     "docker.m.daocloud.io"
  27.     "docker.kejilion.pro"
  28.     "registry.dockermirror.com"
  29.     "hub.rat.dev"
  30.     "dhub.kubesre.xyz"
  31.     "docker.nastool.de"
  32. )

  33. ###############################################################################
  34. # 检查本地是否已经存在 ${IMG}
  35. if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${IMG}$"; then
  36.     echo "镜像 ${IMG} 已经存在,跳过拉取步骤。"
  37.     exit 0
  38. fi

  39. # 遍历镜像源,拉取并打标签
  40. for registry in "${DOCKERHUB_REGISTRY_MIRRORS[@]}"; do

  41.     registry_img=${registry}/${IMG}

  42.     # 检查本地是否已经存在 ${registry_img}
  43.     if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${registry_img}$"; then
  44.         echo "本地已经存在 ${registry_img},跳过拉取,进行打标签。"

  45.         # 为本地已有的镜像打标签为 ${IMG}
  46.         if docker tag ${registry_img} ${IMG}; then
  47.             echo "镜像 ${registry_img} 成功打标签为 ${IMG}。"
  48.             docker rmi ${registry_img} # 删除原镜像(registry镜像源)
  49.             exit 0                     # 成功后退出脚本
  50.         else
  51.             echo "为镜像 ${registry_img} 打标签失败!"
  52.             continue
  53.         fi
  54.     fi

  55.     echo "尝试从镜像源 ${registry} 拉取 ${IMG}..."

  56.     # 拉取镜像
  57.     if docker pull ${registry_img}; then
  58.         # 打标签为 ${IMG}
  59.         if docker tag ${registry_img} ${IMG}; then
  60.             echo "镜像 ${registry_img} 成功打标签为 ${IMG}。"
  61.             docker rmi ${registry_img} # 删除原镜像(registry镜像源)
  62.             exit 0                     # 成功后退出脚本
  63.         else
  64.             echo "为镜像 ${IMG} 打标签失败!"
  65.             docker rmi ${registry_img} # 删除失败的镜像
  66.             continue
  67.         fi
  68.     else
  69.         echo -e "从 ${registry} 拉取镜像失败,尝试下一个镜像源...\n"
  70.         continue
  71.     fi
  72. done

  73. echo "所有镜像源都尝试过,未能拉取并打标签 ${IMG}。"
复制代码
3,、按:健,输入wq,回车进行保存

4、输入:chmod +x pull_image.sh,给脚本加上可执行权限,即可成功拉取镜像

5、例如拉取ghcr.io/imagegenius/immich:latest; 输入:./pull_image.sh ghcr.io/imagegenius/immich:latest 就可以了。

默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:service@pai.al或paijishu@outlook.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网--教开服-游戏源码

偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网-游戏源码

Powered by Discuz! X3.5

GMT+8, 2024-12-4 15:56 , Processed in 0.073336 second(s), 32 queries .

快速回复 返回顶部 返回列表