Harbor-私有镜像仓库的安装部署

发布时间 2023-10-17 09:56:34作者: 村尚chun叔

Harbor-私有镜像仓库的安装部署

仓库的概念也就是用于存储,docker仓库用于存储镜像。

镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题。

公有/私有仓库

Docker Registry有两种形式

公开,开放给所有用户,提供给所有用户搜索,拉取,提交,更新镜像,还免费保管用户镜像数据。
  - 此类服务受限于网络限制,无法及时立即获取所需镜像,简单说就是需要用什么得现下载,得看网速
  - 优点是可以获取绝大部分公开的镜像,方便使用
私有范围的Registry服务,用在学校,企业内网的研发环境
  - 局域网环境,保证了镜像拉取速度
  - 保证核心镜像数据安全
  - 存在镜像不丰富问题

公开服务仓库

最常见的Registry是Docker Hub,也是docker默认允许用户管理镜像的Registry服务,拥有大量高质量的官方镜像。

由于网络地域原因,公开服务在国内访问较慢,也就出现了针对镜像服务的加速器。

- [阿里云加速器](http://ebook-p6.yuchaoit.cn/容器/www.yuchaoit.cn)
- DaoCloud加速器
- 灵雀云加速器
- 等等

使用加速器,可以从国内的地址获取Docker Hub的镜像,速度会快很多。

私有服务仓库

除了私用公开服务外,还可以在自己本地搭建私有Docker Registry。

开源的Docker Registry镜像只提供了Docker Registry API的功能,没有图形化功能。

1.部署docker-harbor

官网给出了安装需要的最低硬件和软件的条件:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/

最低硬件要求:

资源 最低限度 推荐的
CPU 2核 4 核
内存 4GB 8 GB
磁盘 40 GB 160 GB

最低软件要求:

软件 版本
Docker engine 版本 17.06.0-ce+ 或更高版本
Docker Compose 版本 1.18.0 或更高版本
OpenSSL 最新的优先

在线安装和离线安装

可以从官方发布页面下载 Harbor 安装程序。下载在线安装程序或离线安装程序。

在线安装程序:在线安装程序从 Docker 中心下载 Harbor 镜像。因此,安装程序的尺寸非常小。
离线安装程序:如果要部署 Harbor 的主机没有连接到 Internet,请使用离线安装程序。离线安装程序包含预先构建的映像,因此它比在线安装程序大
在线和离线安装程序的安装过程几乎相同。

这里我主要使用离线安装,因为在线安装因为墙、内部网络等原因,有的同学会下载很慢,而离线安装包都包含了预先构建的镜像,所以直接现在离线安装包最好!

离线安装

官方发布 页面下载离线安装包:

image

安装docker-compose

yum install docker-compose -y

[root@docker-200 /www.yuchaoit.cn/test_dockerfile/tomcat_web/web_base]#docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

上传harbor离线安装包

mkdir -p /data/docker-harbor/
cd /data/docker-harbor/
上传安装包
tar -zxvf harbor-offline-installer-v1.9.0-rc1.tgz

[root@node3 docker-harbor]# ll
total 601868
drwxr-xr-x 3 root root       140 Oct 17 09:07 harbor
-rw-r--r-- 1 root root 616312579 Oct 16 23:19 harbor-offline-installer-v1.9.0-rc1.tgz

cd harbor
[root@node3 harbor]# ll
total 605152
drwxr-xr-x 3 root root        20 Oct 16 23:28 common
-rw-r--r-- 1 root root      5287 Oct 17 09:07 docker-compose.yml
-rw-r--r-- 1 root root 619632806 Sep  4  2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root      5800 Oct 16 23:37 harbor.yml
-rwxr-xr-x 1 root root      5088 Sep  4  2019 install.sh
-rw-r--r-- 1 root root     11347 Sep  4  2019 LICENSE
-rwxr-xr-x 1 root root      1748 Sep  4  2019 prepare
可以看到文件夹有一堆文件,其中最主要的是 harbor.yml.tmpl和 install.sh ,他们分别是配置文件和安装执行文件。

编辑harbor.yml,最主要是更改以下几点,其他的保持默认即可:

image

harbor.yml示例模板:

[root@node3 harbor]# grep -Ev '^$|#' harbor.yml 
hostname: 192.168.10.110
http:
  port: 8080
harbor_admin_password: 123456
database:
  password: root123
  max_idle_conns: 50
  max_open_conns: 100
data_volume: /data
clair:
  updaters_interval: 12
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 1.9.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy: 127.0.0.1,localhost,.local,.internal,log,db,redis,nginx,core,portal,postgresql,jobservice,registry,registryctl,clair
  components:
    - core
    - jobservice
    - clair

然后继续用命令执行安装 ./install.sh

image

当出现红箭头指向的提示的时候,就表示安装成功了!

然后根据在harbor.yml文件中配置的端口与IP地址(或域名)进行访问

现在Harbor已经可以使用了

image

由于我部署的时候没有使用HTTPS,所以使用docker登录的时候会出现以下异常信息

image

原因:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。

解决办法:

找到docker 的 daemon.json 配置文件,CentOS 7 的路径:/etc/docker/daemon.json,如果路径下没有这个文件自己创建即可。然后再配置文件里加上:

image

操作完后让这个文件生效:

修改完成后reload配置文件
sudo systemctl daemon-reload
 
重启docker服务
sudo systemctl restart docker.service

尝试docker login

[root@node3 harbor]# docker login http://192.168.10.110:8080/
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
表示登录成功