You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker推送镜像至Harbor时出现无效校验和摘要格式错误求助

Docker推送镜像至私有Harbor时出现"invalid checksum digest format"错误

问题详情

执行推送命令:

$ docker push harbor.wxtest.com/public/alpine-delrediskline:3.16.0-3

返回报错:

The push refers to repository [harbor.wxtest.com/public/alpine-delrediskline]
887d6ad1c9d4: Layer already exists 
c7c486fce125: Layer already exists 
24302eb7d908: Layer already exists 
invalid checksum digest format

已尝试删除本地所有镜像后重新推送,问题依旧。

环境信息

Docker Info

$ docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 5
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 
 runc version: 
 init version: 
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.11.0-1020-aws
 Operating System: Ubuntu 20.04.3 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.899GiB
 Name: weex-dev-lb
 ID: UX3F:6G5F:R67E:54QG:ZQGW:Y2PK:GMFA:SHI6:6EFA:VSDH:KAJP:UIUJ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  harbor.phzt.weextest.com
  10.7.4.53:30002
  127.0.0.0/8
 Live Restore Enabled: false

Docker Version

$ docker version
Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.8
 Git commit:        20.10.7-0ubuntu5~20.04.2
 Built:             Mon Nov  1 00:34:17 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.8
 Git commit:       20.10.7-0ubuntu5~20.04.2
 Built:            Fri Oct 22 00:45:53 2021
 OS/Arch:          linux/amd64
 Experimental:     false
 containerd:
  Version:          1.5.9-0ubuntu1~20.04.4
 GitCommit:        
 runc:
  Version:          1.0.1-0ubuntu2~20.04.1
 GitCommit:        
 docker-init:
  Version:          0.19.0
 GitCommit:        

简化后的Jenkinsfile

pipeline {
  agent {
    node {
      label 'go'
    }
  }
  stages {
      stage('构建并推送镜像') {
        agent none
        steps {
            sh '''cat > Dockerfile <<EOF
FROM nginx:latest
EOF
'''
          container('go') {
            sh 'docker build --network host -t harbor.wxtest.com/public/nginx-test:v1adfea .'
            withCredentials([usernamePassword(credentialsId : 'harbor-new' ,passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,)]) {
              sh 'echo \"asdfea342dfFD3\" | docker login http://harbor.wxtest.com -u \"admin\" --password-stdin'
              sh 'docker push harbor.wxtest.com/public/nginx-test:v1adfea'
            }
          }
        }
      }
    }
  }

额外说明

  • Harbor通过Helm部署在Kubernetes集群中,未配置SSL证书
  • 该Harbor独立于生产环境的Harbor实例

排查与解决建议

  1. 清理Harbor仓库损坏数据:登录Harbor UI,找到目标仓库public/alpine-delrediskline,删除所有关联的镜像版本后重新推送。
  2. 彻底重置本地Docker环境:
    sudo systemctl stop docker
    sudo rm -rf /var/lib/docker
    sudo systemctl start docker
    
    重置后重新构建镜像并推送。
  3. 检查Harbor存储状态:查看Kubernetes中Harbor的registry组件日志,确认存储卷(PV)是否存在读写异常,如有问题修复存储挂载或更换存储后端。
  4. 验证版本兼容性:确认当前Harbor版本与Docker 20.10.7是否兼容,若存在兼容问题,升级或降级Docker至匹配版本。
  5. 检查Jenkins构建逻辑:确保镜像构建过程未对镜像摘要(digest)进行非常规修改,避免使用可能破坏镜像完整性的构建参数。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:20:36