# 使用私有仓库中的docker镜像
企业通常会因为如下几个原因,需要搭建自己的私有 docker registry:
- 限制 docker 镜像的分发范围,例如:只允许在内网分发,或者只允许被授权的用户获取 docker 镜像
- 提高推送 docker 镜像以及抓取 docker 镜像时的网络传输速度
在这种情况下,您需要在 Kubernetes 中使用私有 docker registry 中的 docker 镜像。本文描述了如何通过 Kuboard 完成这个配置任务。
# 前提假设
假设您已经搭建了自己的私有 docker registry,并成功向其中推送了一个 docker 镜像,其主要参数如下:
参数名称 | 参数值 | 备注 |
---|---|---|
registry地址 | my-registry.example.com | 推荐使用域名,也可以是 ip 地址 |
registry端口 | 5000 | 必须支持 HTTPS |
registry用户名 | myusername | |
registry密码 | mypassowrd | |
repository名字 | example | |
image名字 | web-example | |
image标签 | v1.0.1 |
并且,您可以在 kubernetes 集群中的任意节点通过如下 docker 命令成功抓取该 docker 镜像
docker login my-registry.example.com:5000
# username: 提示 username 时,输入:myusername
# password: 提示 password 时,输入:mypassword
docker pull my-registry.example.com:5000/example/web-example:v1.0.1
1
2
3
4
2
3
4
TIP
- 您的私有 docker registry 必须支持 HTTPS
- 如果搭建私有的 docker registry,作者只推荐 vmware 开源的 Harbor (opens new window)
- 您也可以使用任何其他 docker registry,只要您能够在 kubernetes 集群的任意节点通过上面的 docker pull 命令成功抓取到该 docker registry 中的镜像
# 配置 Secrets
打开 Kuboard 界面
进入您要工作的 名称空间 界面
点击 Secrets --> 创建 按钮
填写表单:
字段名称 填写内容 备注 名称 my-registry-secret 可以使用便于您自己记忆的名字 类型 docker仓库密码 docker server my-registry.example.com:5000 docker username myusername docker password mypassword 如下图所示
点击 保存 按钮
# 创建工作负载
此处省略创建工作负载的详细描述,请参考 部署 busybox
如果要使用私有 registry 中的 docker 镜像,请正确填写如下两个字段:
Docker仓库的用户名密码:请选择刚才创建的
my-registry-secret
镜像:请填写
my-registry.example.com:5000/example/web-example:v1.0.1
该字段由如下几个部分组成:
my-registry.example.com:5000/example/web-example:v1.0.1
- 蓝色部分:registry 地址
- 绿色部分:registry 端口
- 紫色部分:repository 名字
- 红色部分:image 名字
- 棕色部分:image 标签
TIP
- 工作负载只能引用同名称空间下的 Secrets
- 如果你想使用 hub.docker.com 上的私有 repository,您在填写 镜像 这个字段时,只要省略 registry 地址 和 registry 端口 这两部分即可