常见问题
关于 Hangar
使用的依赖:
- Hangar 使用了 containers/images API 执行容器镜像拷贝和加签相关操作。
因 containers/signature API 使用了 C 库,因此在编译 Hangar 时需要启用CGO
,编译后的可执行文件存在动态链接库。 - Hangar 使用了 aquasecurity/trivy API 执行容器镜像漏洞扫描相关操作。
- Hangar 使用 Helm API 用于在 Helm Chart 中生成镜像列表。
- Hangar 使用 cobra 处理命令行交互,生成 命令行补全脚本。
Hangar 缓存文件夹
在执行 Save / Sync / Load 命令时,Hangar 使用 ${HOME}/.cache/hangar
暂存下载的容器镜像 Blobs 文件。
在执行容器镜像扫描时,Hangar 使用 ${HOME}/.cache/trivy
目录保存 Trivy 数据库文件。
如果您在执行镜像拷贝的过程中强行停止了 Hangar,请手动清理 ${HOME}/.cache/hangar
目录下的文件。
Harbor 2.X 镜像仓库
若目标镜像仓库为 Harbor,Hangar load
命令将尝试自动为目标镜像仓库创建私有的 Harbor Project。
若 Hangar 无法自动创建 Harbor Project,请手动创建。
为什么使用 zip
压缩包格式?
关于压缩文件的更多信息,请参考 load 和 压缩文件格式 页面。
旧版本的 Hangar 创建的压缩包格式(tar.gz
)将无法与新版本(zip
)格式相兼容。
Hangar 拷贝过的镜像 Digest 会被改变么?
自 Hangar v1.7.0
起,Hangar 会尽可能的确保拷贝容器镜像时,不改变其 Digest。
只有在待拷贝的镜像格式是已弃用的 Docker manifest Version2 Schema1(application/vnd.docker.distribution.manifest.v1+json
)时,Hangar 会在拷贝镜像时将其 mediaType
更新为 Docker manifest Version2 Schema2 (application/vnd.docker.distribution.manifest.v2+json
),此时拷贝后的镜像 Digest 会与源镜像不一致。