docker push 192.168.0.119:20080/test/centos:7 The push refers to repository [192.168.0.119:20080/test/centos] 174f56854903: Layer already exists 7: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529 对上面docker推送镜像到harbor的过程描述来看,详细描述docker推送镜像到harbor的过程,以及说明上面layer already exists是harbor返回的已经存在还是本地docker验证的
根据你提供的输出,下面详细分析 Docker 推送镜像到 Harbor 的过程,以及Layer already exists
的判定来源:
一、Docker 推送镜像到 Harbor 的完整流程
-
身份验证
- 客户端通过
docker login
命令获取访问 Harbor 仓库的权限令牌(如果配置了认证) - 推送时自动携带令牌访问 Harbor 的 Registry API
- 客户端通过
-
镜像元数据解析
- Docker 客户端读取本地镜像的
manifest.json
,解析出所有层(layer)的列表 - 每个层由唯一的哈希值标识
- Docker 客户端读取本地镜像的