- Docker Registry
- 使用不同的 Docker Registry
- 更新 config.json
- 使用 Docker Hub
- 为你的 registry 挂载凭证
- 为你的 registry 挂载凭证
Docker Registry
配置你的 docker registry
为了能够创建和发布 docker 镜像,我们需要使用 Docker Registry。
默认,Jenkins X 会在系统命名空间中带一个 Docker Registry,以及 Jenkins 和 Nexus。当 Docker Registry 运行在你的 Kubernetes 集群中,它会在集群内部使用,它很难通过带有自签名证书的 HTTPS 暴露 —— 因此,在你的 Kubernetes 集群服务中,我们默认使用 insecure 的 Docker Registry。
使用不同的 Docker Registry
如果你使用公有云的话,可能希望利用你的云服务商的 Docker Registry;或者复用你已有的 Docker Registry。
为了指定 Docker Registry 的主机、端口,你可以使用 Jenkins 控制台:
jx console
然后,定位到 管理 Jenkins -> 系统配置,并修改环境变量 DOCKER_REGISTRY 指向你选择的 Docker Registry。
另一种方法是,把下面的内容添加到你的自定义 Jenkins X 平台 helm charts 的values.yaml 文件中:
jenkins:Servers:Global:EnvVars:DOCKER_REGISTRY: "gcr.io"
更新 config.json
下一步,你需要为 docker 更新 config.json 中的认证。
如果为你的 Docker Registry 创建一个 config.json 文件,例如:Google 云的 GCR,它可能看起来像:
{"credHelpers": {"gcr.io": "gcloud","us.gcr.io": "gcloud","eu.gcr.io": "gcloud","asia.gcr.io": "gcloud","staging-k8s.gcr.io": "gcloud"}}
对于 AWS 则像:
{"credsStore": "ecr-login"}
然后需要更新凭据 jenkins-docker-cfg ,你可以执行以下操作:
kubectl delete secret jenkins-docker-cfgkubectl create secret generic jenkins-docker-cfg --from-file=./config.json
使用 Docker Hub
如果你想要发布你的镜像到 Docker Hub 当中 ,则需要修改你的 config.json 像下面那样:
{"auths": {"https://index.docker.io/v1/": {"auth": "MyDockerHubToken","email": "myemail@acme.com"}}}
为你的 registry 挂载凭证
你的 docker registry 需要将凭证挂载到 Pod 模板当中。
