我们运行私人码头注册表,我正在尝试使用公证人添加图片签名。我有公证设置,Docker客户端可以在推送到注册表时对图像进行签名。
我的问题是我们没有推送到同一个注册表名称。我们使用Nexus来托管我们的docker镜像,这是运行私有注册表的Nexus方式的工件。
我们推送到 docker-registry- 发布 .example.com 并从 docker-registry.example.com 拉 我们无法推送到docker-registry.example.com
我无法找到一种方法让码头工人或公证人签署图像而不先推动它。我希望能做的是这样的事情:
docker push docker-registry-publish.example.com/team1/app1:1.0
docker tag docker-registry-publish.example.com/team1/app1:1.00 docker-registry.example.com/team1/app1:1.0
$some_way_to_sign docker-registry.example.com/team1/app1:1.0
没有' docker sign '命令,据我所知,docker签署图片的唯一方法是推送它。 '公证人'需要一个档案,而我不知道如何将它作为码头图像。 有没有办法让码头工人或公证人只做签名?
谢谢!
答案 0 :(得分:0)
这些是我要执行的步骤。
首先,使用docker trust key generate
生成密钥并将其命名为${key}
然后,加载密钥并为图像添加签名者
docker trust key load --name ${key} ${key}.pub
docker trust signer add --key ${key}.pub ${key} docker-registry-publish.example.com/team1/app1:1.0
接下来,构建图像:
docker build --disable-content-trust=true -t docker-registry-publish.example.com/team1/app1:1.0 .
然后,对图像签名:
docker trust sign docker-registry-publish.example.com/team1/app1:1.0
验证密钥和签名:
docker trust inspect --pretty docker-registry-publish.example.com/team1/app1:1.0
最后,将其推送:
docker push docker-registry-publish.example.com/team1/app1:1.0