containers/storage
GitHub: containers/storage
一个 Go 语言容器存储库,提供对容器镜像层、镜像和容器的统一存储与管理能力。
Stars: 637 | Forks: 273
`storage` 是一个 Go 库,旨在提供存储文件系统层、容器镜像和容器的方法。还包含一个 `containers-storage` CLI 包装器,可供手动操作和编写脚本使用。
要构建 CLI 包装器,请使用 'make binary'。
使用虚拟机(VM)的操作预期通过 'vagrant' 来启动,并默认使用其 'libvirt' provider。所使用的 box 也支持 'virtualbox' provider,可以在启动构建之前通过将 $VAGRANT_PROVIDER 设置为 'virtualbox' 来选择它。
该库管理三种类型的项:层、镜像和容器。
*层* 是一个写时复制文件系统,在概念上,如果它有*父*层,则存储为相对于其父层的一组更改。一个给定的层只能有一个父层,但任何层都可以是多个层的父层。作为其他层父层的层应被视为只读。
*镜像* 是对特定层(其 _顶层_)的引用,以及该库为了方便调用者而可以管理的其他信息。这些信息通常包括用于运行镜像层中包含的二进制文件的配置模板,并且可能包含加密签名。多个镜像可以引用同一个层,因为两个镜像之间的差异可能不在于其层内容。
*容器* 是一个读写层,它是镜像顶层的一个子层,以及该库为了方便调用者而可以管理的其他信息。这些信息通常包括用于运行特定容器的配置信息。多个容器可以派生自单个镜像。
层、镜像和容器主要由 32 个字符的十六进制 ID 表示,但每种类型的项也可以附加一个或多个任意名称,当它们被传递给期望接收 ID 的 API 调用时,该库会自动将其解析为 ID。
该库可以为这些类型的每一项存储它所谓的*元数据*。这应该是一小块数据,因为它会被缓存在内存中,并与该库自身的记录信息一起存储。
此外,该库可以为镜像和容器存储一个或多个它所谓的*大数据*。这是一块较大的命名数据,只有在从其专属磁盘文件读取或向其写入时,它才会存在于内存中。
**[贡献](CONTRIBUTING.md)**
有关为该项目做贡献的信息。
标签:EVTX分析, Go, Ruby工具, SOC Prime, 存储库, 容器技术, 容器镜像, 开发工具, 文件系统, 日志审计