如何在Kubernetes中引用私有DockerHub映像?

时间:2017-01-22 14:19:38

标签: kubernetes dockerhub

我第一次使用Kubernetes,并且在尝试引用私有DockerHub图像时有一段时间。

在yaml中,这就是我所拥有的:

.... many other lines
-image: registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest

我得到的错误

Failed to pull image "registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest":
image pull failed for registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest, 
this may be because there are no credentials on this request. 
details: (Error: image MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME not found)

现在,在Kubernetes配置方面,我完全不知道,但到目前为止,我哪里出错?

1 个答案:

答案 0 :(得分:1)

以下是一个示例,说明如何为私有存储库创建一个密钥,并在部署中引用它:

  1. 创建密钥

    kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
    
  2. 在部署中使用它

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: example
      namespace: default
    spec:
      replicas: 1
      strategy:
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 0
        type: RollingUpdate
      template:
        metadata:
          labels:
            run: example
        spec:
          containers:
          - name: example
            image: myregistryrepo/myimage:latest
            ports:
            - containerPort: 80
              name: http
            imagePullPolicy: Always
          imagePullSecrets:
            - name: myregistrykey