如何将Docker Hub全OS/架构镜像拉取并推送到个人Docker Hub仓库?
跨架构复制Docker镜像到私有仓库的方法
要完整复制源镜像的所有OS/架构版本到自己的Docker Hub仓库,无需对应架构的本地设备,用Docker Buildx工具就能搞定,具体步骤如下:
方法一:直接在仓库间同步(推荐,无需本地存储所有架构镜像)
- 先登录自己的Docker Hub账号:
docker login - 检查Buildx是否可用,首次使用的话创建并启用多架构builder实例:
docker buildx version # 确认工具可用 docker buildx create --use # 创建并切换到支持多架构的builder - 执行镜像同步命令,直接把源镜像的所有架构版本复制到你的仓库:
docker buildx imagetools create -t myregistry/node:latest docker.io/library/node:latest
这个命令会读取源镜像的多架构清单,直接在Docker Hub仓库间同步所有架构版本,不用把镜像拉到本地占用空间。
方法二:先拉取全架构镜像到本地再推送
如果需要在本地保留所有架构的镜像,可通过Buildx拉取全版本后再推送:
- 拉取源镜像的所有架构版本:
docker buildx pull node:latest - 给镜像打上私有仓库的标签:
docker tag node:latest myregistry/node:latest - 用Buildx推送所有架构版本到私有仓库:
docker buildx push myregistry/node:latest
原命令失效的原因
普通的docker pull只会拉取和你本地Intel架构匹配的linux/amd64镜像,而Buildx工具专门用于处理多架构镜像的拉取、推送和构建,能识别并操作镜像的全架构清单。
内容的提问来源于stack exchange,提问作者blindsnowmobile
相关产品推荐
相关产品推荐

