使用Harbor建立私有docker仓库
介绍
Harbor
harbor是vmware提供的一个开源的企业级docker仓库方案,可以提供跨数据中心的景象同步备份
有很多地方提供免费的docker私有仓库,然而最合理的方式还是保存在自己私有仓库中。
Docker官方的hub也提供免费的私有仓库,但是只提供1个私有仓库。Gitlab也为没给项目提供免费的私有仓库,但是不清楚有什么限制。(Gitlab真有钱,无限免费仓库,2kMin的ci,还有这个貌似无限制的docker私有仓库)
安装registry
如果不需要网页管理什么的直接部署官方的registry容器就行了
docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
/data/registry:/var/lib/registry
默认上传的仓库会保存在docker的/var/lib/registry
目录中,可以选择映射到实机的目录下
但是如果要一些更好用的管理方式的话harbor是一个不错的选择安装Harbor
安装docker和docker compose
安装参照官方文档这里就不重复讲了docker,docker compose
安装Harbor
下载最新的Harbor
解压后修改harbor.cfg
#绑定域名
hostname = docker.*.com
#ui协议可选http和https
ui_url_protocol = https
#ssl证书位置,选择https之后需要上传域名的ssl证书
#并指定位置
ssl_cert = /root/harbor/cert/server.crt
ssl_cert_key = /root/harbor/cert/server.key
#是否开启注册
self_registration = off
修改完保存后运行./install.sh
等待安装完成打开https://docker.*.com
就可以直接访问Harbor的UI控制页面默认用户名密码admin/Harbor12345
修改端口
如果80和443被占用且不能不用的话就只能修改Harbor的端口,修改docker-compose.yml
文件,编辑proxy节点
#修改端口
ports:
- 80:80
- 443:443
- 4443:4443
并且修改harbor.cfg的hostname加入新的端口,如在使用https的情况,切修改443端口为1443,则hostname为docker.*.com:1443。(然而在修改端口后出现无法复制仓库到另一个Harbor的情况,暂时未找到解决方案,所以建议还是使用默认端口比较好)
进行复制仓库
进入系统管理-仓库管理-新建目标 输入目标名,地址,用户名和密码。如果修改过端口的需要加入端口号,点击测试。
进入复制管理-新建规则 输入规则名,输入本地的项目名,再选择目标。再选择触发模式
- 手动,push新的镜像并不会复制,需要手动到网页中操作复制
- 即刻,push新的镜像之后会立即开始复制
- 定时,到指定时间会开始复制
## docker操作
在需要push镜像的机器上登陆仓库
docker login docker.*.com
在项目中标记镜像:
docker tag SOURCE_IMAGE[:TAG] docker.*.com/项目名/IMAGE[:TAG]
推送镜像到当前项目:
docker push docker.*.com/项目名/IMAGE[:TAG]
就可以成功的push镜像并复制到另一台机器上