跳至主要內容

DockerHub镜像迁移到自定义源

安格Dockerdocker大约 1 分钟...

提示

DockerHub 镜像迁移到自定义源

将 DockerHub 的镜像转存到自己的阿里云容器镜像服务

参考(阿里云云效文档): 从海外下载基础镜像导致流水线镜像构建任务缓慢open in new window

解决方案:按照以下步骤,修改您的 Dockerfile:

  1. 将境外镜像在 pull 到本地。

    docker pull openjdk:8-jdk-alpine
    
  2. 将基础镜像 push 到阿里云镜像仓库(cr.console.aliyun.com)的国内 region(比如北京、上海等)。

    docker tag openjdk:8-jdk-alpine registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine
    
    docker push registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine
    
  3. 修改你的 dockerfile 中 FROM,从你自己的镜像仓库下载镜像 。

    From registry.cn-beijing.aliyuncs.com/yournamespace/openjdk:8-jdk-alpine
    

脚本封装

按照上面的过程手动操作略麻烦,这里封装一个脚本来用

#!/usr/bin/env bash
if [ -z "$1" ]; then
    echo "docker镜像tag不能为空"
    exit 1
fi

# tag=node:18-alpine
tag=$1
tag_new=registry.cn-shanghai.aliyuncs.com/{自己的命名空间}/${tag}

docker pull ${tag}
docker tag ${tag} ${tag_new}
docker push ${tag_new}

使用说明, 以阿里云容器镜像服务为例:

  • 将上面代码保存到 shell 文件, 如: transfer-docker-registry.sh, 并给予执行权限:

    chmod +x transfer-docker-registry.sh
    
  • 在 shell 登录自己的阿里云 Docker Registry:

    docker login --username={自己的阿里云账户全名} registry.cn-shanghai.aliyuncs.com
    
  • 迁移所需的镜像, 例如:

./transfer-docker-registry.sh node:18-alpine
上次编辑于:
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3