在应用 K8S 和 Docker 进行疾速 CI/CD 的过程中咱们须要提交 Docker 镜像. 在私有云上, 咱们能够应用阿里云镜像服务. 但本地开发和测试环境, 如果应用阿里云等私有云服务, 在速度和流量费用方面都须要思考, 因而少不了私有化部署. 常见的私有化计划有 2 种:
- Docker Registry. 以后最新版本为 Registry 2. 提供外围的仓库服务, 但无节面. 适宜开发和测试环境, 以及小团队应用.
- Harbor. Habor 是由 VMWare 公司开源的容器镜像仓库。事实上,Habor 是在 Docker Registry 上进行了相应的企业级扩大,从而取得了更加宽泛的利用,这些新的企业级个性包含:治理用户界面,基于角色的访问控制,反对 Helm charts, AD/LDAP 集成以及审计日志等。因而, 对于比拟大的组织, 或者须要在正式环境应用, 甚至二次开发或对外进行服务, 那么举荐应用 Harbor.
一. Docker Registry 装置和启动:
Registry 间接应用 docker 装置即可, 需裸露一个端口, 以及将镜像存储的门路 map 到 host 长久化. 应用以下命令进行装置:
docker pull registry:2.6.1
docker run -d -p 5000:5000 -v /data2/docker-registry/registry:/tmp/registry --restart=always daocloud.io/registry:2.6.1
如果应用应用国内 DaoCloud 镜像, 可将下面的 registry:2.6.1
替换为 daocloud.io/registry:2.6.1
.
残缺的 compose.yaml
示例如下:
dockerregistry:
image: daocloud.io/library/registry:2.6.1
privileged: false
restart: always
ports:
- 5000:5000
volumes:
- /data2/docker-registry/registry:/tmp/registry
二. 拜访 Registry:
配置本地 docker 容许拜访非平安 (http) 服务
在 docker 所在机器编辑 (如没有, 能够新建) /etc/docker/daemon.json
(假如为 Linux 零碎):
{"insecure-registries" : ["ttg12:5000"]
}
提交一个镜像 (image)
当初示例把 registry:2.6.1
这个镜像打上公有仓库的标签, 并且提交:
docker tag registry:2.6.1 ttg12:5000/registry:2.6.1
docker push ttg12:5000/registry:2.6.1
输入相似如下:
The push refers to repository [ttg12:5000/registry]
423c48d36423: Pushed
cec8f96b3c39: Pushed
25acfcbca8c9: Pushed
05d392f56700: Pushed
2b0fb280b60d: Pushed
2.6.1: digest: sha256:988247ab20a6b83e57039bea439c37fa3f3b728e9f8aa720bbc381f24ec78db3 size: 1364
三. 给 Registry 减少权限验证
参考 Authenticate proxy with nginx