【Docker】DockerHub拉取镜像
因为特殊原因,所以我们需要将DockerHub镜像推送到阿里云容器镜像服务(registry.cn-hangzhou.aliyuncs.com)然后再使用,请按照以下步骤操作:
1. 登录阿里云容器镜像服务
首先使用你提供的命令登录
阿里云镜像服务自行注册,创建好命名空间😎,免费使用
sudo docker login --username=bjdnlsj registry.cn-hangzhou.aliyuncs.com
执行后会提示输入密码,这里需要输入的是阿里云容器镜像服务的登录密码(不是阿里云账号密码,若未设置可在阿里云控制台重置)。
2. 为本地镜像打标签
推送前需要将本地镜像按照阿里云仓库格式打标签,格式为:
sudo docker tag [本地镜像名]:[标签] registry.cn-hangzhou.aliyuncs.com/[你的命名空间]/[仓库名]:[标签]
例如,如果你要推送本地的ubuntu:24.04
镜像到命名空间my-namespace
下的ubuntu
仓库:
sudo docker tag ubuntu:24.04 registry.cn-hangzhou.aliyuncs.com/my-namespace/ubuntu:24.04
注意:需要先在阿里云容器镜像服务控制台创建对应的命名空间和仓库,否则会推送失败。
3. 推送镜像到阿里云仓库
使用docker push
命令推送打好标签的镜像:
sudo docker push registry.cn-hangzhou.aliyuncs.com/[你的命名空间]/[仓库名]:[标签]
以刚才的例子为例:
sudo docker push registry.cn-hangzhou.aliyuncs.com/my-namespace/ubuntu:24.04
4. 推送成功后验证
推送完成后,可以在阿里云容器镜像服务控制台查看已推送的镜像,也可以在其他机器上通过pull
命令拉取:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/[你的命名空间]/[仓库名]:[标签]
常见问题解决
-
若提示"denied: requested access to the resource is denied",通常是因为:
- 命名空间或仓库不存在(需先在控制台创建)
- 登录用户没有该命名空间的权限
- 标签格式错误
-
若推送速度慢,可以检查网络环境或配置阿里云镜像加速器。
-
通常出现在 Mac 上构建/拉取的镜像 推送到 阿里云容器镜像服务(ACR) 后,在 Linux 服务器(例如 CentOS、Ubuntu) 上运行失败。原因大多数与 架构不兼容 或 镜像构建方式差异 有关。有些第三方镜像或你自己构建的镜像 没有同时支持 amd64 和 arm64。