在配置非https的镜像仓库时,docker是不能直接拉取,需要配置daemon.json

官网解决地址:https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry

步骤:

1 我们在daemon.json 里配置镜像仓库地址

vi /etc/docker/daemon.json

{"insecure-registries": "IP"}

注意:daemon.json文件不存在就创建;镜像仓库地址的默认端口不是80时,这里需要指定IP:端口

2 重启docker

systemctl restart docker

 

然后 docker login 输入用户名密码或者直接:

docker login -u username -p password 镜像仓库地址

然后就可以正常pull镜像

具体用户名密码和URL的关系 保存在 ~/.docker/config.json 里:

用户名和密码用base64加密后保存在对应的auth里

 

k8s集群拉取非https的私服私有镜像,除了每台主机需要这样配置,还需要配置secret

注意:拉取公服/私服的公有镜像时不需要配置secret,拉取公服/私服的私有镜像时需要配置secret

如果主机能拉取镜像,但是k8s一直拉取失败时,还有一种可能是没有修改k8s的默认容器引擎为docker

拉取私服镜像时会报错:

Failed to pull image "127.0.0.1/tom/blog:v2.0": rpc error: code = Unknown desc = Error response from daemon: repository 127.0.0.1/tom/blog:v2.0 not found: does not exist or no pull access

而且哪怕我们已经在主机上pull下镜像,k8s还是说找不着或没权限。k8s官方文档说用 secret

官网地址:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

rancher上配置私服镜像仓库:https://blog.csdn.net/qq_35720307/article/details/87866834

参考博客:https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/?utm_source=rss

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐