我很困惑 docker 和 Notary 是如何协同工作的。我不能签名图片
docker pull nginx:latest
得到
Error: error contacting notary server: x509: certificate signed by unknown authority
我按照这些步骤
git clone https://github.com/theupdateframework/notary
cd notary $ docker-compose build
docker-compose up -d
mkdir -p ~/.notary && cp cmd/notary/config.json cmd/notary/root-ca.crt ~/.notary
root-ca.crt 代表什么?如何检查这个?该错误是否表示客户端不认可证书的颁发者并认为证书无效?
该
root-ca.crt
文件用于在 Docker 客户端和 Notary 服务器之间建立信任。您的问题是 Docker 客户端无法识别证书的颁发者(公证服务器)并认为证书无效。原因是它不是由受信任的证书颁发机构签名的(您系统上的默认信任)
我们要告诉 docker 信任公证服务器使用的根 CA 证书。首先我们要创建 Docker 所需的目录:
sudo mkdir -p /etc/docker/certs.d/your.notary.server.url:4443
然后我们将其复制root-ca.crt
到它sudo cp cmd/notary/root-ca.crt /etc/docker/certs.d/your.notary.server.url:4443/ca.crt
重新启动 Docker,它应该可以工作。