首页 > 解决方案 > 如何访问私有 docker hub 镜像?

问题描述

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

无法拉取图像“testuser/services:latest”:rpc 错误:代码 = 未知 desc = 无法拉取和解压图像“docker.io/testuser/services:latest”:无法解析参考“docker.io/testuser/services :latest": 拉取访问被拒绝,存储库不存在或可能需要授权:服务器消息:不足范围:授权失败

我按照指南配置私有注册表: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 已成功创建但无法拉取图像并显示上述错误。

要启用对我添加imagePullSecrets到 app-service.yml 的私有 docker hub 映像的访问:

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

应用部署.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

标签: dockerkubernetesdigital-oceandockerhub

解决方案


你可以试试下面:

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

推荐阅读