如何访问私有 docker 中心图像?

How to access private docker hub image?

我正在尝试将私有 docker 镜像拉入数字海洋 Kubernetes 集群。我收到此错误:

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

我按照指南配置私有注册表:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/,执行命令:

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

我正在按照本指南在 Kubernetes 上使用 Docker 容器创建 Kubernetes 集群:https://www.digitalocean.com/community/tutorials/how-to-automate-deployments-to-digitalocean-kubernetes-with-circleci

当我执行kubectl apply -f ~/kube-general/时,pod创建成功,但是拉取镜像失败,显示上面的错误。

为了允许访问私有 docker 中心图像,我已将 imagePullSecrets 添加到应用程序-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

应用-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

更新:

从我的本地机器中提取图像按预期工作:

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

我遵循的过程与:https://www.digitalocean.com/community/questions/private-docker-registry

你能试试下面的吗:

kubectl create secret docker-registry dockerreg --docker-server=docker.io --docker-username=alloweduserid --docker-password=password --docker-email=user@abc.com