containers/image

GitHub: containers/image

containers/image 是一个 Go 语言库,提供容器镜像的拉取、推送、检查、格式转换、跨仓库复制以及签名与验证等功能,是 skopeo 等容器工具的底层依赖。

Stars: 964 | Forks: 397

# [![Go 参考](https://pkg.go.dev/badge/github.com/containers/image/v5.svg)](https://pkg.go.dev/github.com/containers/image/v5) [![构建状态](https://api.cirrus-ci.com/github/containers/image.svg)](https://cirrus-ci.com/github/containers/image) `image` 是一组 Go 库,旨在以各种方式处理 容器镜像和容器镜像仓库。 containers/image 库允许应用程序从容器镜像仓库(如 docker.io 和 quay.io 仓库)中拉取和推送镜像。它还 实现了“简单镜像签名”。 containers/image 库还允许您在不拉取镜像的情况下检查容器 仓库上的存储库。这意味着它可以获取 存储库的清单(manifest),并能够以类似于 `docker inspect` 的 JSON 格式 向您展示关于整个存储库或标签的信息。与 `docker inspect` 不同,该库可帮助您收集有关存储库或标签的有用信息, 而无需您运行 `docker pull`。 containers/image 库还允许您将一种镜像格式转换 为另一种,例如将 docker 容器镜像转换为 OCI 镜像。它还允许 您在各种仓库之间复制容器镜像(可根据需要进行转换),以及对镜像进行签名和验证。 ## 命令行用法 containers/image 项目仅是一个库,没有用户界面; 您可以将其合并到您的 Go 程序中,或者使用 `skopeo` 工具: [skopeo](https://github.com/containers/skopeo) 工具使用了 containers/image 库并利用了其许多功能, 例如,`skopeo copy` 展示了 `containers/image/copy.Image` 的功能。 ## 依赖 本库以 [Go module] 的形式提供。 ## 构建 如果您想了解该库的功能,或者想查看调用它的示例, 建议改从 [skopeo](https://github.com/containers/skopeo) 工具 入手。 要将此库集成到您的项目中,请将其作为 [Go module] 包含进来, 将其放入 `$GOPATH`,或使用您首选的 vendoring 工具在您的项目中包含一份 副本。请确保 [在 go.mod 中][go.mod] 记录的依赖项 也可用(可以使用那些确切的版本或您自选的 不同版本)。 该库还依赖于一些 C 库。请安装它们: ``` Fedora$ dnf install gpgme-devel libassuan-devel macOS$ brew install gpgme ``` 或者使用下文所述的构建标签(build tags)来避免这些依赖(例如,使用 `go build -tags …`) ### 支持的构建标签 - `containers_image_docker_daemon_stub`:不要在 `github.com/containers/image/transports/alltransports` 中导入 `docker-daemon:` transport,以减少所需的依赖项。而是使用一个报告该 transport 不受支持的存根(stub)。 - `containers_image_openpgp`:使用纯 Golang 的 OpenPGP 实现进行签名验证,而不是默认的基于 cgo/gpgme 的实现; 主要的缺点是,纯 Golang 实现不支持创建新签名。 - `containers_image_sequoia`:使用 Sequoia-PGP 进行签名验证,而不是默认的基于 cgo/gpgme 的实现或纯 Golang 的 OpenPGP 实现,并启用 `signature/simplesequoia` 子包。这需要在系统上安装支持的共享库。请安装 https://github.com/ueno/podman-sequoia ,并可能需要更新构建配置以指向它(对比 `Makefile` 中的 `SEQUOIA_SONAME_DIR`)。 - `containers_image_storage_stub`:不要在 `github.com/containers/image/transports/alltransports` 中导入 `containers-storage:` transport,以减少所需的依赖项。而是使用一个报告该 transport 不受支持的存根(stub)。 ## 许可证 Apache License 2.0 SPDX-License-Identifier: Apache-2.0 ## 联系方式 - 邮件列表:[containers-dev](https://groups.google.com/forum/?hl=en#!forum/containers-dev) - IRC:freenode.net 上的 #[container-projects](irc://irc.freenode.net:6667/#container-projects)
标签:EVTX分析, Go语言, PyVis, SOC Prime, 容器, 容器镜像, 开发工具, 日志审计, 程序破解, 请求拦截, 镜像仓库