containers/image
GitHub: containers/image
containers/image 是一个 Go 语言库,提供容器镜像的拉取、推送、检查、格式转换、跨仓库复制以及签名与验证等功能,是 skopeo 等容器工具的底层依赖。
Stars: 964 | Forks: 397
# [](https://pkg.go.dev/github.com/containers/image/v5) [](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, 容器, 容器镜像, 开发工具, 日志审计, 程序破解, 请求拦截, 镜像仓库