配置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镜像被签名之后推到工厂.