Harbor镜像仓库的安装

Harbor

Posted by alovn on November 18, 2020

镜像仓库是我们下载镜像的来源,所以我们要控制好镜像仓库的访问权限,所以强烈建议使用私有的镜像仓库。一般有两个选择选项:使用第三方管理的私有仓库(如AWS, Google, Microsoft, Quay,阿里云),或者使用自己搭建的私有仓库。 Harbor是一款VMWare开源的镜像仓库管理工具,类似的镜像仓库还有docker官方开源的docker-registry镜像仓库管理工具, nexus也是一个不错的选择。为什么Harbor更受大家的欢迎呢? 这是因为Harbor提供了比docker registy更完整的功能,Harbor提供了更友好的Web UI管理、用户鉴权管理、数据持久化,还可以代理并缓存docker hub和其它镜像仓库的镜像,一旦通过Harbor代理缓存后,再也不用龟速的等待下载镜像了。

安装要求

下载并安装Harbor之前,需要先了解Harbor的软硬件要求, 目前最新版本的Harbor是V2.1.0版本,官方推荐的硬件配置是:

资源最小要求推荐
CPU2CPU4CPU
内存4GB8GB
磁盘40GB160GB

如果是仅仅是为了测试学习安装Harbor,你的配置也可以低于最低要求。

Harbor V2.1。0对软件环境的要求是:

软件版本
Docker Engine17.06.0-ce 或更高版本
Docker Compose1.18.0 或更高版本
Openssl推荐最小版本

安装Harbor-compose

Harbor的运行依赖于docker-compose, 如果你添加了docker的官方源,那你可以直接用yum方便的安装它:

1
yum install docker-compose -y

当然你也需要安装一个docker环境。如果不知道怎么安装,可以看下文章末尾给出的官方文档链接。

下载Harbor

你可以到Github Release 下载到 Harbor的安装程序 https://github.com/goharbor/harbor/releases

推荐下载安装Harbor的稳定版本的离线安装包ß。

将下载好的包解压到你要安装的目录,我习惯于将下载的包安装到挂载的目录 /data/apps下:

1
2
tar -zxvf harbor-offline-installer-v2.1.1.tgz 
mv harbor/ /data/apps/

修改Harbor的配置

Harbor的配置是一个yaml格式的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /data/apps/harbor/
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
 
hostname: 172.16.10.105 # 改成你自己部署服务所在的IP
port: 80 # harbor服务的端口
#注释掉https这段
# https related config
#https:
    # https port for harbor, default is 443
    # port: 443
    # The path of cert and key files for nginx
    # certificate: /your/certificate/path
    # private_key: /your/private/key/path
harbor_admin_password: Harbor12345 # 这里是Harbor管理员的密码,要改成自己的

安装Harbor

当上面的步骤都操作完成后,安装就比较简单了,直接一条命令执行就可以了:

1
./install.sh

访问harbor

1
2
http://172.16.10.15
默认的帐号和密码是:admin/Harbor12345 # 根据上面步骤的配置

启动停止Harbor

我们当前部署的Harbor是用docker-compose运行在docker环境下的,启动与停止的命令直用docker-compose就行了:

1
2
3
docker-compose up -d //启动
docker-compose stop //停止
docker-compose restart //停止

使用Harbor下载镜像

要使用Docker下载镜像,需要将Harbor的配置配置到docker的配置文件中:

1
2
3
4
5
vi /etc/docker/daemon.json

{
    "insecure-registries": ['172.16.10.15']
}

添加完成以上的配置后,需要重启docker:

1
systemctl restart docker

通过Docker登录Harbor仓库

添加完成harbor的配置并重启docker后,可以像使用 docker hub 一样使用harbor:

1
2
3
4
5
6
7
8
docker login 172.16.10.15
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

上传镜像到Harbor

首先将你的应用打包成Docker镜像,这里就不多作说明了,然后直接执行命令:

1
docker push 172.16.10.15/library/app:v1

代理镜像

添加过代理项目过后,可以直接从harbor拉取到 docker hub的镜像:

1
docker pull <harbor_server_name>/<proxy_project_name>/goharbor/harbor-core:dev

如果要拉取的是官方的镜像,需要加上 library:

1
docker pull <harbor_server_name>/<proxy_project_name>/library/hello-world:latest

假如我的harbor代理项目名为public:

1
docker pull 172.16.10.15/public/library/alpine:3.12.1

参考官方文档

安装Docker Engine

安装Docker Compose

Harbor官方文档

Harbor Proxy Cache