一尘不染

如何在Vagrant上从Kubernetes访问私有Docker Hub存储库

docker

我无法从私有Docker Hub存储库中拉到在Vagrant上运行的本地Kubernetes设置中:

容器“ hellonode-n1hox”中的容器“ hellonode”正在等待启动:无法提取图像

无法提取图像“用户名/ hellonode”:错误:找不到图像用户名/ hellonode:最新

我已经按照此处所述通过Vagrant在本地设置了Kubernetes,并使用
kubectl创建 了一个名为``dockerhub’
‘的秘密。创建秘密docker-registry dockerhub –docker-server =
https://registry.hub.docker.com/
--docker-username =用户名–docker-password = … –docker-email = …
我作为镜像拉密钥提供了它。

我正在运行Kubernetes 1.2.0。


阅读 283

收藏
2020-06-17

共1个答案

一尘不染

要从Kubernetes YAML中获取私有DockerHub托管映像,请执行以下操作:

运行以下命令:

DOCKER_REGISTRY_SERVER=docker.io
DOCKER_USER=Type your dockerhub username, same as when you `docker login`
DOCKER_EMAIL=Type your dockerhub email, same as when you `docker login`
DOCKER_PASSWORD=Type your dockerhub pw, same as when you `docker login`

kubectl create secret docker-registry myregistrykey \
  --docker-server=$DOCKER_REGISTRY_SERVER \
  --docker-username=$DOCKER_USER \
  --docker-password=$DOCKER_PASSWORD \
  --docker-email=$DOCKER_EMAIL

如果您在DockerHub上的用户名是DOCKER_USER,并且您的私有存储库称为PRIVATE_REPO_NAME,并且您要拉取的映像被标记为latest,请创建以下example.yaml文件:

apiVersion: v1
kind: Pod
metadata:
  name: whatever
spec:
  containers:
    - name: whatever
      image: DOCKER_USER/PRIVATE_REPO_NAME:latest
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]
  imagePullSecrets:
    - name: myregistrykey

然后运行:

kubectl create -f example.yaml
2020-06-17