blue-sky
blue-sky

Reputation: 53826

How to access private docker hub image?

I’m attempting to pull a private docker image into a digital ocean Kubernetes cluster. I receive this error:

Failed to pull image "testuser/services:latest": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/testuser/services:latest": failed to resolve reference "docker.io/testuser/services:latest": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

I followed the guide to configure the private registry : https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ , executing the command :

kubectl create secret generic regcred
--from-file=.dockerconfigjson=<path/to/.docker/config.json>
--type=kubernetes.io/dockerconfigjson

I'm following this guide for creating a Kubernetes cluster with Docker container on Kubernetes: https://www.digitalocean.com/community/tutorials/how-to-automate-deployments-to-digitalocean-kubernetes-with-circleci

When I execute kubectl apply -f ~/kube-general/ the pod is successfully created but fails to pull the image and displays above error.

To enable access to a private docker hub image I’ve added imagePullSecrets to app-service.yml :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: testuser
  namespace: default
  labels:
    app: testuser
spec:
  replicas: 1
  selector:
    matchLabels:
      app: testuser
  template:
    metadata:
      labels:
        app: testuser
    spec:
      containers:
        - name: testuser
          image: testuser/services:latest
          ports:
            - containerPort: 5000
              name: http
      imagePullSecrets:
        - name: regcred

app-deployment.yaml:

apiVersion: v1
kind: Service
metadata:
  name: services
  namespace: default
  labels:
    app: services
spec:
  type: ClusterIP
  ports:
    - port: 5000
      targetPort: http
      name: http
  selector:
    app: services

Update:

pulling the image from my local machine works as expected:

docker pull testuser/services:latest 
latest: Pulling from testuser/services
Digest: sha256:35db6c6e9344043a67abe2e0a2f2583c036479728c944dc4136494f0d09a44fe
Status: Image is up to date for testuser/services:latest
docker.io/testuser/services:latest

The process I've followed is same as: https://www.digitalocean.com/community/questions/private-docker-registry

Upvotes: 2

Views: 3248

Answers (1)

arjain13
arjain13

Reputation: 606

Can you try below:

kubectl create secret docker-registry dockerreg --docker-server=docker.io --docker-username=alloweduserid --docker-password=password [email protected]

Upvotes: 3

Related Questions