docker-registry
docker-registry类型的Secret主要用于存储从私有镜像库中下载容器镜像所需的相关信息,而不是为了向容器中传递数据的,其中主要包括:
访问Docker私有镜像仓库所需的用户名;
访问Docker私有镜像仓库所需的密码;
访问Docker私有镜像仓库账户的Email;
Docker私有镜像仓库的地址(只有当不使用docker hub时,才需要指定,如使用阿里云的镜像仓库);
这里将分作两部分讨论,第一部分是将所需信息传入docker-registry类型的Secret,即创建Secret,第二部分是Pod使用其中保存的信息从私有镜像仓库中下载容器所需镜像。
该类型的Secret的secret.type=kubernetes.io/dockerconfigjson
。
配置传入Secret
数据传入Secret的过程,即创建Secret的过程,在创建时,可以将需要用来访问私有镜像仓库的信息以键/值对的形式写入Secret中。这里主要包括:访问私有镜像仓库所需的用户名、密码和Email。
创建Secret与ConfigMap同样有两种方式:
使用指令创建(优选);
使用配置文件创建;
在这里我们仅展示使用第一种方式创建Secret的方式,即使用指令创建。下面展示一个创建该类型Secret的案例:
查看Secret中保存的数据,可以发现只有一个条目.dockerconfigjson,相当于用户主目录下的 .dockercfg 文件,该文件通常在运行docker login
命令时由Docker自动创建。
使用Secret拉取镜像
Pod通过在spec.imagePullSecrets
中的name
指定包含了从私有镜像仓库中拉取镜像所需的信息的docker-registry类型的Secret名,进而利用该信息,从私有镜像仓库中下载容器镜像。
下面举一个例子,下载一个来自于私有镜像仓库的镜像registry.cn-hangzhou.aliyuncs.com/yangsijie666/test:latest
生成容器:
Last updated
Was this helpful?