我已在公证基础设施下方设置:
我想使用我的私有docker注册表(nexus),它使用我已启动并运行的公证基础设施部署在不同的机器中。
请您告诉我一步一步的过程吗?
我正在尝试使用此链接https://github.com/theupdateframework/notary
中提供的说明设置我自己的公证服务我做了什么:
git clone https://github.com/theupdateframework/notary.git
cd notary
3 )$ docker-compose build
$ docker-compose up -d
执行上述步骤后,我在Docker主机上运行了3个容器并运行(在本地笔记本电脑上运行-Ubuntu16.04)
现在为了使用我的本地公证服务和私有注册表连接(在其他机器上作为容器托管),我已经完成了以下步骤:
/etc/hosts entry
127.0.0.1 notary-server
mkdir -p ~/.notary && cp cmd/notary/config.json cmd/notary/root-ca.crt ~/.notary
在此之后,我使用以下命令测试了连接,并且它成功了。
openssl s_client -connect :4443 -CAfile fixtures/root-ca.crt -no_ssl3 -no_ssl2
现在,为了对图像进行签名并将其推送到私有注册表,我已经设置了以下环境变量。
DOCKER_CONTENT_TRUST_SERVER=https://notary-server:4443
DOCKER_CONTENT_TRUST=1
问题: 当我发出如下所示的docker push命令时
sudo docker push nexus.xyz.com:5000/nginx:latest(之前我做过正确的标签)
它没有通过签名,它直接将图像推送到私人注册表
但是当我使用
时sudo docker push --disable-content-trust=false nexus.xyz.com:5000/nginx:latest
它对图像进行了签名并推送,但在使用
时未显示任何可信内容notary list nexus.xyz.com:5000/nginx:latest
问题: 我是否需要进行任何其他配置才能使用我自己的公证服务?
任何帮助都会非常感激。
答案 0 :(得分:0)
我能够按照您的描述进行操作。但是,当我推动时:
docker push localhost:5000 / uname / nginx:latest
*注意我有自己的私有注册表在本地运行
此外,这使您不必编辑/ etc / hosts:
公证人-s https://localhost:4443列表localhost:5000 / gt3389b / myfirstimage
答案 1 :(得分:0)
sudo docker push --disable-content-trust=false nexus.xyz.com:5000/nginx:latest
以root用户身份运行,因此主目录更改。
您应该尝试将.docker和.notary复制到根目录的主目录中。 或将当前用户添加到docker组中,并在不使用sudo的情况下运行docker命令。