当前位置: 首页 > news >正文

使用 podman 推送数据到私有仓库的 3 个问题记录

写在前面,什么是 podman

因为公司不让用 docker,所以可以理解为 podman 是 docker 的替代。

Podman 设计上是兼容 Docker 的,这意味着你可以用 Podman 替代 Docker,而不需要对现有的Docker环境或脚本做太多改变。


场景:推送镜像到私有仓库,报了如下三个错误,记录一下

podman push xxxxxxx
  • 问题 1: Error: trying to reuse blob sha256:e0781bc8667fb5ebf954df4ae52997f6f5568ec9f07e21e5db7c9d324ed41e1f at destination: pinging container registry harbor.xxxx.xxxx.xxxx.xxxx: Get "https://harbor.xxxx.xxxx.xxxx.xxxx/v2/": tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
  • 问题 1 的解决方案:增加参数 --tls-verify=false 解决了该问题

  • 问题 2:Error: writing blob: initiating layer upload to /v2/xxxx/blobs/uploads/ in harbor.xxxx.xxxx.xxxx.xxxx: requested access to the resource is denied

  • 问题 2 的解决方案:需要先登录

    podman login harbor.xxxx.xxxx.xxx.xxxx -u xxxxxxxx -p xxxxxxxx
    

  • 问题 3:Error: writing manifest: uploading manifest 7.4.0 to harbor.xxxx.xxxx.xxxx.xxxx/xxxxxx: manifest invalid
  • 问题 3 的解决方案:增加参数 --format v2s2 解决了该问题

--format v2s2 的解释

问题 3 中提到的错误是关于上传容器镜像到 Harbor 仓库时的问题。错误信息提示上传的镜像清单(manifest)无效。解决方法是增加 --format v2s2 参数。

  • format 参数的选择:Docker 镜像格式通常有两种选择,分别是 v2s1 和 v2s2:
    • v2s1(Schema 1):是 Docker Registry HTTP API V2 的早期版本,已经不推荐使用。
    • v2s2(Schema 2):是推荐的现代格式,提供了更多的特性和改进。
      这两种格式的含义:

v2s1(Schema 1):它是 Docker 镜像分发的第一个版本,支持签名,但缺乏其他一些功能,例如内容寻址和多平台镜像支持。
v2s2(Schema 2):这个版本添加了一些重要的功能,例如内容寻址,这样可以通过校验和来验证镜像的完整性,同时支持多架构镜像和清单列表。

为何会报错:

报错可能是因为 Harbor 仓库配置为只接受 Schema 2 的镜像格式,而尝试上传的镜像可能是旧的 Schema 1 格式,或者镜像清单文件有其他问题。通过明确指定 --format v2s2,确保上传的是兼容的镜像格式,从而解决了问题。

最终的命令

podman push xxxxxxx --tls-verify=false --format v2s2

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【知识】PyTorch中的数据类型dtype
  • MAVSDK添加自定义消息与函数实现云台(Gimbal)调整功能
  • 【Python爬虫实例爬取网站搞笑段子】
  • 线程池个人笔记总结
  • 编程-设计模式 7:桥接模式
  • pandas赋值不成功
  • 职业教育物联网实验实训室建设应用案例
  • 入营测评题解
  • BeanFactory 和FactoryBean的区别
  • linux常用网络工具汇总二
  • Duilib 二
  • openfeign本地试用
  • 工厂模式 vs 策略模式:Java设计模式详细对比
  • 科学碳目标|科学碳倡议|SBTI认证|科学基础目标倡议
  • JSONB字段搜索走索引
  • Babel配置的不完全指南
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES6系统学习----从Apollo Client看解构赋值
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS 颜色设置看我就够了
  • iOS编译提示和导航提示
  • Java Agent 学习笔记
  • java中具有继承关系的类及其对象初始化顺序
  • Vim 折腾记
  • 创建一种深思熟虑的文化
  • 后端_ThinkPHP5
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 排序算法学习笔记
  • 嵌入式文件系统
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 物联网链路协议
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 用Canvas画一棵二叉树
  • ​flutter 代码混淆
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # Redis 入门到精通(一)数据类型(4)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十七)Flink 容错机制
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)详解PHP处理密码的几种方式
  • *p++,*(p++),*++p,(*p)++区别?
  • .chm格式文件如何阅读
  • .DFS.
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Micro Framework 4.2 beta 源码探析
  • .net 调用php,php 调用.net com组件 --
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)