非常教程

Docker 17参考手册

引擎: 安全 | Engine: Security

内容信任自动化(引擎) | Automation with content trust (Engine)

您的自动化系统拉取或构建镜像也可以信任。DOCKER_CONTENT_TRUST在处理镜像之前,任何自动化环境都必须手动设置或以脚本方式设置。

绕过密码短语的请求

要允许工具打包docker并推送可信内容,有两个环境变量允许您提供没有期望脚本的密码短语,或者输入它们:

  • DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE
  • DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE

Docker尝试将这些环境变量的内容用作密钥的密码。例如,图像发布者可以导出存储库targetsnapshot密码短语:

$  export DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE="u7pEQcGoebUHm6LHe6"
$  export DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE="l7pEQcTKJjUHm6Lpe4"

然后,在推送新标签时,Docker客户端不会请求这些值,而是自动标记:

$  docker push docker/trusttest:latest
The push refers to a repository [docker.io/docker/trusttest] (len: 1)
a9539b34a6ab: Image already exists
b3dbab3810fc: Image already exists
latest: digest: sha256:d149ab53f871 size: 3355
Signing and pushing trust metadata

直接使用公证客户端时,它将使用自己的一组环境变量。

内容信任构建

您也可以使用内容信任进行构建。在运行docker build命令之前,您应该DOCKER_CONTENT_TRUST手动或以脚本方式设置环境变量。考虑下面的简单Dockerfile。

FROM docker/trusttest:latest
RUN echo

FROM标签被拉动签署图像。您无法构建具有FROM本地或未签署的图像。鉴于标记存在内容信任数据latest,以下构建应该成功:

$  docker build -t docker/trusttest:testing .
Using default tag: latest
latest: Pulling from docker/trusttest

b3dbab3810fc: Pull complete
a9539b34a6ab: Pull complete
Digest: sha256:d149ab53f871

如果启用了内容信任,则从依赖于标记而没有信任数据的Dockerfile构建,会导致构建命令失败:

$  docker build -t docker/trusttest:testing .
unable to process Dockerfile: No trust data for notrust

相关信息

  • Docker中的内容信任
  • 管理内容信任的密钥
  • 内容信任代表团
  • 在内容信任沙箱中播放

信任,安全,docker,文档,自动化

Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06