配置Docker公证人和Docker客户端
为了使用可信的Docker映像,在Artifactory中不需要配置。但是,在下面的设置说明中,我们建议通过签名Artifactory并在容器中运行它来测试您的配置。
为了配置Docker公证人和客户端与Artifactory一起工作,执行以下主要步骤:
配置Hosts文件
如果您没有使用DNS,请将以下条目添加到您的设置
文件:
sudo sh -c 'echo "<主机IP> <公证服务器名称>" >> /etc/hosts' sudo sh -c 'echo "<主机IP>" >> /etc/hosts' '
配置公证服务器
为您的公证服务器创建一个目录。在下面的代码片段中,我们将使用notarybox
.
创建一个dockerfile,内容如下:
FROM debian:jessie ADD https://get.docker.com/builds/Linux/x86_64/docker-1.9.1 /usr/bin/docker RUN chmod +x /usr/bin/docker \ && apt-get update \ && apt-get install -y \ tree \ vim \ git \ ca-certificates \——no-install-recommends WORKDIR /root运行git克隆https://github.com/docker/notary.git && \ cp /root/根/notary/fixtures/root-ca。crt /usr/local/share/ca-certificates /根ca。crt && \ update-ca-certificates ENTRYPOINT ["bash"]
使用私有证书
此配置与公共证书一起运行。任何使用相同公共证书运行的Docker客户端都可以访问您的公证服务器。
对于安全的设置,我们建议将其替换为您组织的私有证书r取代公众root-ca.crt
证书文件下面有您的私人证书
/root/notary/fixtures
在你的公证员服务器上/usr/local/share/ca-certificates
在运行Docker客户端的机器上。
构建测试映像:
Docker build -t[镜像名称][dockerfile路径]
如果你在dockerfile目录下运行构建,你可以使用“。”
作为Docker文件的路径。
启动公证员服务器:
要启动公证员服务器,首先需要码头工人组成安装。
然后执行以下步骤:
CD公证盒git clone -b trust-sandbox https://github.com/docker/notary.git CD公证docker-compose build docker-compose up -d
配置Docker客户端
要将公证服务器连接到Docker客户端,您需要启用Docker内容信任标志,并按以下方式添加公证服务器URL:
export DOCKER_CONTENT_TRUST=1 export DOCKER_CONTENT_TRUST_SERVER=https://notaryserver:4443
测试你的设置
下面的例子演示了如何设置公证服务器和Docker客户端,签名图像并将其推送到Artifactory,假设如下:
- Artifactory在Docker容器中启动并运行
- 你有配置公证服务器
- 公证服务器和Artifactory在本地主机上运行(
127.0.0.1
) - 公证服务器在目录中
notarybox
- 在没有DNS的情况下工作(因此我们需要配置
主机
文件) - 公证员名称为
notaryserver
- Artifactory服务器名称为
artifactory-registry
- 安装Docker Compose。
设置IP映射
Sudo sh -c 'echo ' 127.0.0.1 artifactory-registry ' >> /etc/hosts'
提取图像进行测试
Docker pull Docker /trusttest
在拉出图像之后,您需要码头工人登录
来artifactory-registry: 5002 / v2
配置Docker客户端
export DOCKER_CONTENT_TRUST=1 export DOCKER_CONTENT_TRUST_SERVER=https://notaryserver:4443
标记您为测试所拉的图像并将其推到Artifactory
Docker标签Docker /trusttest artifactory-registry:5002/test/trusttest:最新的Docker推送artifactory-registry:5002/test/trusttest:最新的Docker
您将被要求输入根密钥密码。这将需要每次您推送一个新的图像,而DOCKER_CONTENT_TRUST
设置标志。
根密钥在以下位置生成:/root/.docker/trust/private/root_keys
您还将被要求为图像输入一个新的密码。这是在/root/.码头工人/trust/private/tuf_keys/[registry name] /[imagepath]
Docker映像在它之后被签名推送到Artifactory.