3.8. 将 docker 凭证用于私有容器镜像仓库
				您可以为构建提供 .docker/config.json 文件,在文件中包含私有容器 registry 的有效凭证。这样,您可以将输出镜像推送到私有容器镜像 registry 中,或从需要身份验证的私有容器镜像 registry 中拉取构建器镜像。
			
您可以为同一 registry 中的多个存储库提供凭证,每个软件仓库都有特定于该 registry 路径的凭证。
对于 OpenShift Container Platform 容器镜像 registry,这不是必需的,因为 OpenShift Container Platform 会自动为您生成 secret。
				默认情况下,.docker/config.json 文件位于您的主目录中,并具有如下格式:
			
				您可以定义多个容器镜像 registry,或在同一 registry 中定义多个存储库。或者,也可以通过运行 docker login 命令将身份验证条目添加到此文件中。如果文件不存在,则会创建此文件。
			
				Kubernetes 提供Secret 对象,可用于存储配置和密码。
			
先决条件
- 
						您必须有一个 .docker/config.json文件。
流程
- 输入以下命令从本地 - .docker/config.json文件创建 secret:- oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson- $ oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这将生成名为 - dockerhub的 secret 的 JSON 规格并创建该对象。
- 将 - pushSecret字段添加到- BuildConfig中的- output部分,并将它设为您创建的- secret的名称,上例中为- dockerhub:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 您可以使用 - oc set build-secret命令在构建配置上设置推送 secret:- oc set build-secret --push bc/sample-build dockerhub - $ oc set build-secret --push bc/sample-build dockerhub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 您还可以将 push secret 与构建使用的服务帐户链接,而不指定 - pushSecret字段。默认情况下,构建使用- builder服务帐户。如果 secret 包含与托管构建输出镜像的存储库匹配的凭证,则 push secret 会自动添加到构建中。- oc secrets link builder dockerhub - $ oc secrets link builder dockerhub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过指定 - pullSecret字段(构建策略定义的一部分),从私有容器镜像 registry 拉取构建器容器镜像:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 您可以使用 - oc set build-secret命令在构建配置上设置拉取 secret:- oc set build-secret --pull bc/sample-build dockerhub - $ oc set build-secret --pull bc/sample-build dockerhub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 本例在 Source 构建中使用 - pullSecret,但也适用于 Docker 构建和 Custom 构建。- 您还可以将 pull secret 链接到构建使用的服务帐户,而不指定 - pullSecret字段。默认情况下,构建使用- builder服务帐户。如果 secret 包含与托管构建的输入镜像的存储库匹配的凭证,pull secret 会自动添加到构建中。要将 pull secret 链接到构建使用的服务帐户,而不指定- pullSecret字段,请输入以下命令:- oc secrets link builder dockerhub - $ oc secrets link builder dockerhub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 您必须在 - BuildConfigspec 中指定一个- from镜像,才能利用此功能。由- oc new-build或- oc new-app生成的 Docker 策略构建在某些情况下可能无法进行这个操作。