使用Harbor建立私有docker仓库

介绍

Harbor

harbor是vmware提供的一个开源的企业级docker仓库方案,可以提供跨数据中心的景象同步备份

有很多地方提供免费的docker私有仓库,然而最合理的方式还是保存在自己私有仓库中。

Docker官方的hub也提供免费的私有仓库,但是只提供1个私有仓库。Gitlab也为没给项目提供免费的私有仓库,但是不清楚有什么限制。(Gitlab真有钱,无限免费仓库,2kMin的ci,还有这个貌似无限制的docker私有仓库)

安装registry

如果不需要网页管理什么的直接部署官方的registry容器就行了

1
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

1
2
3
4
5
6
7
8
9
10
#绑定域名
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节点

1
2
3
4
5
#修改端口
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
1
2
3
4
5
6
7
8
在项目中标记镜像:

docker tag SOURCE_IMAGE[:TAG] docker.*.com/项目名/IMAGE[:TAG]


推送镜像到当前项目:

docker push docker.*.com/项目名/IMAGE[:TAG]

就可以成功的push镜像并复制到另一台机器上

文章作者: Image
文章链接: https://by.cx/2018/10/24/使用Harbor建立私有docker仓库/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编译程序