我很困惑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 代表什么?如何检查?错误是否意味着客户端无法识别证书的颁发者并认为证书无效?
答案1
该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,它就可以工作了。