Harbor企业级镜像仓库安装部署

生也有涯,知也无涯。这篇文章主要讲述Harbor企业级镜像仓库安装部署相关的知识,希望能为你提供帮助。


Harbor企业级镜像仓库安装部署Harbor是VMware公司开源的一个企业级Docker
Registry项目,项目地址: ??https://github.com/goharbor/harbor??  。
Harbor作为一个企业级私有Registry服务器,提供了更好的性能和安全,提升了用户使用Registry构建和运行环境传输镜像的效率。虽然Harbor和Registry都是私有镜像仓库的选择,但是Harbor的企业级特性更强,因此也是更多企业级用户的选择。
Harbor实现了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制,也常常和K8S中的namespace结合使用。此外,Harbor还提供了图形化的管理界面,我们可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。


1.下载离线安装包




wget??https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0.tgz??
tarxf harbor-offline-installer-v1.7.0.tgz






2.安装docker-compose来管理harbor的容器服务。




使用GitHub源
curl -L ??https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname??-s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x/usr/local/bin/docker-compose






验证一下:
[root@localhost
harbor]# docker-compose --version
docker-compose
version 1.18.0, build 8dd22a9


在解压的harbor目录中编辑harbor.cfg文件,修改一下hostname,其它的可以先不做配置:
hostname= 192.168.2.201




修改完配置接下来在harbor目录下执行以下命令:
  ./prepare


./install.sh


查看容器都正常启动了:
docker-compose ps




            Name                                        Command                            State                                                              Ports                                                         
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver    /harbor/start.sh                                Up                                                                                                                                         
harbor-core                                /harbor/start.sh                                  Up                                                                                                                                         
harbor-db                          /entrypoint.sh postgres                    Up          5432/tcp                                                                                                             
harbor-jobservice            /harbor/start.sh                                  Up                                                                                                                                         
harbor-log                          /bin/sh -c /usr/local/bin/ ...      Up          127.0.0.1:1514-> 10514/tcp                                                                           
harbor-portal                  nginx -g daemon off;                           Up          80/tcp                                                                                                                 
nginx                                                nginx -g daemon off;                           Up          0.0.0.0:443-> 443/tcp, 0.0.0.0:4443-> 4443/tcp,0.0.0.0:80-> 80/tcp
redis                                        docker-entrypoint.sh redis ...       Up          6379/tcp                                                                                                             
registry                                  /entrypoint.sh /etc/regist ...       Up          5000/tcp                                                                                                             
registryctl                                        /harbor/start.sh                                Up                                                                                                                                         
[root@localhostharbor]#




3.验证测试



新创建用户cict1和cict2

新建项目

在另外一台客户机器上面推送镜像,先配置好信任来源,http推送




编辑/etc/docker/daemon.json文件,添加harbor服务器ip:







              "insecure-registries": [ "192.168.2.201" ]





重启docker
systemctl restart  docker
查看现在镜像

把要推送的镜像打个tag:
docker  tag docker.io/nginx 192.168.2.201/test/nginx:latest
使用刚刚的cict1用户登录,然后执行推送镜像命令。
[root@node1  ~]# docker login 192.168.2.201




Username (cict):cict
Password:
Login Succeeded




推送镜像至仓库
[root@node1 ~]# docker push  192.168.2.201/test/nginx:latest




2bed47a66c07:Layer already exists
82caad489ad7:Layer already exists
d3e1dca44e82:Layer already exists
c9fcd9c6ced8:Layer already exists
0664b7821b60:Layer already exists
9321ff862abb:Layer already exists
latest: digest:sha256:4424e31f2c366108433ecca7890ad527b243361577180dfd9a5bb36e828abf47 size:1570







在其他docker主机中把镜像pull下来,也是要先登录然后再执行pull命令:
[root@localhost  harbor]# docker images

[root@localhost  harbor]# docker login 192.168.2.201



[root@localhost  harbor]# docker pull 192.168.2.201/test/nginx:latest

如果想要继续更改harbor.cfg.配置,那么改完后需要重新初始化Harbor:
docker-compose down -v # 暂停Harbor实例群
./prepare  # 生成配置文件,根据 harbor.cfg 配置生成docker-compose文件。
docker-compose up -d  # 后台启动Harbor实例群


不用Harbor了,那么可以彻底删除Harbor的数据和镜像文件:
# 彻底地删除 Harbor 的数据和镜像rm-r /data/databaserm-r /data/registry












【Harbor企业级镜像仓库安装部署】


    推荐阅读