省流提醒:
- 本次解决的问题是
docker login
可以正常登录,docker pull
也可以正常拉取镜像,只是 k8s 在启动 pod 的时候,没有指定imagePullSecrets
,导致没权限拉取
docker login
命令后,会在 ~/.docker/config.json
生成凭据文件参考命令,记得把
<>
去掉
kubectl create secret generic <secret 名字> \
-n <namespace 名字> \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
如果有多个私有仓库,这种方式创建的 Secret 更好用一点
kubectl create secret docker-registry <secret 名字> \
-n <namespace 名字> \
--docker-server=<your-registry-server> \
--docker-username=<your-name> \
--docker-password=<your-pword> \
--docker-email=<your-email>
--docker-server
是你的私有 Docker 仓库全限定域名(FQDN)
https://index.docker.io/v1/
--docker-username
是你的 Docker 用户名--docker-password
是你的 Docker 密码--docker-email
是你的 Docker 邮箱apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: -private-image>
imagePullSecrets:
- name: >