You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

从本地Harbor 2.0.2拉取镜像报invalid reference format的原因及疑问

问题解答

1. invalid reference format 错误原因

你输入的Docker拉取命令格式不对!Docker拉取私有仓库镜像的时候,不需要加http://前缀。你写的http://192.168.31.93/dolphin/harbor-portal:v2.0.2里,http://会被Docker当成镜像名称的一部分,这完全不符合镜像引用的规范(正确格式是仓库地址/镜像名:标签),所以才会抛出格式无效的错误。

修正后的命令应该是:

sudo docker pull 192.168.31.93/dolphin/harbor-portal:v2.0.2

另外补充个小细节:如果你的Harbor仓库用的是http协议,得先在Docker配置里把这个仓库地址加入insecure-registries列表,不然Docker可能会因为安全验证失败导致拉取失败,这也是个常见的小坑。

2. Harbor是否会主动拉取本地不存在的镜像?

默认情况下,Harbor不会自动主动拉取远程仓库的镜像到本地。不过你提到已经配置了复制规则,这就要看你配置的是哪种复制模式:

  • 如果是拉取式复制(Pull-based replication):把远程仓库设为源、本地Harbor设为目标,当有人尝试从本地Harbor拉取某个不存在的镜像时,Harbor会触发复制任务,从远程源仓库拉取对应的镜像到本地,之后再提供给拉取请求。
  • 如果是推送式复制(Push-based replication):这种模式只有当远程源仓库有新镜像推送(比如新增标签、新版本)时,才会自动推送到本地Harbor,不会主动去拉取本地原本没有的镜像。

简单总结:只有配置了拉取类型的复制规则,并且有实际的拉取请求触发,Harbor才会去远程拉取本地不存在的镜像;否则不会主动执行拉取操作。

内容的提问来源于stack exchange,提问作者Dolphin

火山引擎 最新活动