云客户?
免费开始>
在MyJFrog中升级>
云的新功能>







概述

公证人是Docker的平台,通过签名发布的图像来提供可信的内容交付。然后,内容发布者可以提供相应的签名密钥,允许用户在使用该内容时验证该内容。Artifactory完全支持与Docker公证合作,以确保上传到Artifactory的Docker映像可以签名,然后在下载使用时进行验证。当Docker客户端配置为与Docker公证人一起工作时,在将映像推送到Artifactory之后,客户端通知公证人在为其分配标签之前对映像进行签名。

Artifactory支持托管签名映像,无需任何额外配置。

页面内容



配置Docker公证和Docker客户端

Artifactory中不需要配置就可以使用受信任的Docker镜像。但是,在下面的安装说明中,我们建议通过签名Artifactory并在容器中运行它来测试您的配置。

要配置Docker公证和客户端与Artifactory一起工作,请执行以下主要步骤:

配置主机文件

如果您没有使用DNS,请将以下条目添加到您的设置文件:

sudo sh -c 'echo "<主机IP> <公证服务器名称>" >> /etc/hosts' sudo sh -c 'echo "<主机IP> <公证服务器名称>" >> /etc/hosts'

配置公证服务器

为您的公证服务器创建目录。在下面的代码片段中,我们将使用notarybox

创建一个dockerfile,内容如下:

从debian:jessie ADD https://get.docker.com/builds/Linux/x86_64/docker-1.9.1 /usr/bin/docker运行chmod +x /usr/bin/docker \ && apt-get update \ && apt-get install -y \ tree \ vim \ git \ ca-certificates \——no-install-建议WORKDIR /root运行git clone 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客户端都可以访问您的公证服务器。

为了安全设置,我们建议将其替换为您组织的私有证书取代公众root-ca.crt证书文件下面是您的私人证书/root/notary/fixtures在你的公证服务器上/usr/local/share/ca-certificates在运行Docker客户端的机器上。


构建测试映像:

Docker build -t[镜像名称][dockerfile路径]

如果您在dockerfile目录下运行构建,则可以使用“。”作为Docker文件的路径。

启动公证服务器:

要启动公证服务器,首先需要有码头工人组成安装。

然后执行以下步骤:

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 . export DOCKER_CONTENT_TRUST=1

测试你的设置

下面的例子演示了建立公证服务器和Docker客户端,签署一个镜像并将其推送到Artifactory,假设如下:

  • Artifactory在Docker容器中启动并运行
  • 你有配置公证服务器
  • 公证服务器和Artifactory运行在本地主机(127.0.0.1
  • 公证服务器在目录中notarybox
  • 在没有DNS的情况下工作(所以我们需要配置主机文件)
  • 公证服务器名称为notaryserver
  • 人工服务器名称为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 . export DOCKER_CONTENT_TRUST=1

标记要测试的图像并将其推送到Artifactory

Docker标签Docker /trusttest artifactory-registry:5002/test/trusttest:最新Docker推送artifactory-registry:5002/test/trusttest:最新

您将被要求输入根密钥密码短语。这将需要在每次推送新图像时DOCKER_CONTENT_TRUST已设置标志。

根密钥生成于:/root/.docker/trust/private/root_keys

您还将被要求为图像输入一个新的密码。这是在/root/.码头工人/trust/private/tuf_keys/[registry name] /[imagepath]

Docker镜像被签名之后推到工厂

版权所有©2023 JFrog Ltd.