Docker容器镜像仓库之Harbor私有镜像仓库

前言

目前越来越多项目上容器化了,同时项目的不断更新迭代,并且镜像也作为了项目标准交付物的时候。企业存在一个私有的镜像仓库是很有必要。而Harbor在存储与分发镜像时的安全性也是比较适合企业使用。

什么是Harbor?

Harbor 是一个开源可信云原生注册表项目,用于存储、签名和扫描内容。Harbor 通过添加用户通常需要的功能(例如安全性、身份和管理)来扩展开源 Docker Distribution。拥有更接近构建和运行环境的注册表可以提高image传输效率。Harbor 支持在注册中心之间复制镜像,还提供高级安全功能,例如用户管理、访问控制和活动审计。Harbor私有镜像仓库(官方解释)

官方地址:https://goharbor.io/

官方开源代码地址:
https://github.com/goharbor/harbor

官方部署文档:
https://goharbor.io/docs/2.2.0/install-config/

官方文档中提供了两种部署方式,在线与离线。此篇文章依据离线方式部署Harbor。

Harbor私有镜像仓库

一、系统环境

1.1 软件版本

软件 版本

操作系统 CentOS Linux release 7.9.2009 (Core)
Docker 20.10.7-ce
Docker-Compose 1.23.2
Harbor 2.3.0

1.2 关闭防火墙及selinux

[root@harbor ~]# systemctl stop firewalld
[root@harbor ~]# systemctl disable firewalld
[root@harbor ~]# setenforce 0
[root@harbor ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config

二、安装Docker与Docker-Compose

2.1 安装Docker

可参考此文章安装Docker-ce:CentOS7部署最新Docker ce

2.2 安装Docker-Compose

[root@harbor ~]# wget
https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -o /usr/bin/docker-compose #下载可执行文件
[root@harbor ~]# chmod +x /usr/bin/docker-compose
[root@harbor ~]# docker-compose version

Harbor私有镜像仓库

三、安装Harbor

3.1 下载离线安装包

访问harbor开源网站:
https://github.com/goharbor/harbor

Harbor私有镜像仓库

Harbor私有镜像仓库

下载地址:
https://github.com/goharbor/harbor/releases/download/v2.3.0/harbor-offline-installer-v2.3.0.tgz

3.2 解压离线包

将下载好的
harbor-offline-installer-v2.3.0.tgz上传至服务器,并解压。

[root@harbor ~]# ls [root@harbor ~]# tar zxf harbor-offline-installer-v2.3.0.tgz -C /usr/local/ 
[root@harbor ~]# ls /usr/local/harbor/

Harbor私有镜像仓库

3.3 安装harbor

[root@harbor ~]# cd /usr/local/harbor/

[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml #拷贝模板配置文件

[root@harbor harbor]# vim harbor.yml

hostname: reg.mydomain.com 修改为hostname: 192.168.16.75

https: 添加注释

port: 443 添加注释

certificate: /your/certificate/path 添加注释

private_key: /your/private/key/path 添加注释

[root@harbor harbor]# ./install.sh #执行安装脚本

在执行安装脚本时,脚本会去镜像仓库拉取对应的镜像并运行

Harbor私有镜像仓库

[root@harbor harbor]# docker ps  #脚本运行完成后,
[root@harbor harbor]# docker ps   #会出现10个容器并在运行状态

Harbor私有镜像仓库

浏览器访问:http://IP,默认账号密码:admin/Harbor12345

Harbor私有镜像仓库

目前项目只有一个空的

Harbor私有镜像仓库

四、Docker主机配置http连接

其他Docker主机需要推送或拉取镜像的话,由于harbor在推送或拉取镜像时默认是不允许http连接的,我们上面在配置harbor时禁用了https。因此在其他的Docker主机上需要修改配置来支持http连接。注意:任何docker主机想上传或拉取镜像到harbor,都需要配置harbor私有仓库的地址。

[root@node1 ~]# vim /etc/docker/daemon.json
添加:"insecure-registries": ["192.168.16.75"]

Harbor私有镜像仓库

[root@node1 ~]# systemctl daemon-reload && systemctl restart docker

五、harbor创建项目测试

5.1 创建项目

登录harbor系统,创建一个项目。

Harbor私有镜像仓库

5.2 获取推送命令

Harbor私有镜像仓库

5.3 推送镜像

例如我现在node1 docker主机上有一个定制版本的nginx镜像。现需要上传至harbor私有仓库中。

[root@node1 ~]# docker login 192.168.16.75 #登录私有仓库,账号密码为harbor网站的(admin/Harbor12345)

Harbor私有镜像仓库

[root@node1 ~]# docker image ls

Harbor私有镜像仓库

[root@node1 ~]# docker tag nginx:1.17
192.168.16.75/pull-test/nginx:1.17 #为镜像打标签

Harbor私有镜像仓库

[root@node1 ~]# docker push 192.168.16.75/pull-test/nginx:1.17

Harbor私有镜像仓库

5.4 harbor查看项目镜像

Harbor私有镜像仓库

镜像的拉取也是同样步骤噢。具体更多功能及配置也查看官方博客网站:https://goharbor.io/blog/


Docker容器镜像仓库之Harbor私有镜像仓库
https://cn.10691.cn//archives/10051
作者
Ley
发布于
2021年08月17日
许可协议