当前位置: 代码迷 >> 综合 >> docker私有仓库搭建----harbor
  详细解决方案

docker私有仓库搭建----harbor

热度:5   发布时间:2023-12-15 05:42:33.0

docker私有仓库搭建----harbor

harbor镜像私有仓库是VMware公司的一个开源项目,其强大之处在于可以提供多种功能:
1.可以通过图形化UI界面管理、检索镜像。
2.可以方便管理使用者的身份角色。
3.可以支持删除垃圾镜像,充分利用磁盘空间。
4.支持LDAP和AD认证。
5.也可以提供api接口提供多种功能。
6.后端存储可以与ceph或者swift等对接。

一、harbor的构成

在这里插入图片描述
harbor主要由多种容器构成,proxy接收web或者docker客户端的请求。
registry,主要负责存储镜像。
core service:是harbor的主要核心功能提供UI、秘钥和webhook等功能。
database:负责存储一些用户的相关信息,为core service提供服务。
log collector:为其他服务收集日志。

二、harbor仓库的搭建

1.首先需要解压harbor压缩包到:/usr/local目录下面。

 tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

在这里插入图片描述
2.修改harbor配置文件。其中的hostname需要改为本机的IP地址
在这里插入图片描述
此外还有一些配置信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上这些配置信息,在修改之后需要重新用install.sh脚本进行重新安装。
其他的一些配置信息如,harbor的admin用户的用户名和密码修改不需要再次重新安装一遍harbor。
安装harbor服务

sh /usr/local/harbor/install.sh

最后看到出现这种画面就表示harbor完成了安装。
在这里插入图片描述
我们可以通过docker ps -a,查看harbor开启了那些容器:如registry、ui、database等。
在这里插入图片描述
此外我们也可以使用容器编排工具查看每个容器具体的运行情况。

[root@harbor harbor]# docker-compose psName                     Command               State                                Ports                              
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/harbor_adminserver       Up                                                                      
harbor-db            docker-entrypoint.sh mysqld      Up      3306/tcp                                                        
harbor-jobservice    /harbor/harbor_jobservice        Up                                                                      
harbor-log           /bin/sh -c crond && rm -f  ...   Up      127.0.0.1:1514->514/tcp                                         
harbor-ui            /harbor/harbor_ui                Up                                                                      
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
registry             /entrypoint.sh serve /etc/ ...   Up      5000/tcp                                                        
[root@harbor harbor]# 

需要注意的是:这条命令(docker-compose ps)必须在**/usr/local/harbor**路径下才能被使用,否则在其他路径下无法正常使用。

[root@harbor harbor]# cd /opt/
[root@harbor opt]# docker-compose ps
ERROR: Can't find a suitable configuration file in this directory or anyparent. Are you in the right directory?Supported filenames: docker-compose.yml, docker-compose.yaml

3.登录到harborweb界面。在宿主机上通过游览器访问到harbor的前端
在这里插入图片描述
这里我来仔细解释一下每一个具体的信息。
1.关于项目和镜像,镜像存在于项目之中,项目可以是管理员或者有权限的用户才可以创建。
在这里插入图片描述
创建一个项目:
在这里插入图片描述
为了方便上传镜像,我们在本地终端登陆到harbor上。在登陆时不要使用localhost进行登陆。

docker login -u admin -p Harbor12345 http://127.0.0.1

成功登录到harbor私有仓库中。
在这里插入图片描述
2.上传镜像:
为了可以上传镜像到私有仓库中,我们需要先对镜像进行标签修改。需要将每个镜像改为固定格式。

docker tag 原镜像 127.0.0.1/项目名称/镜像名称:镜像版本

本地上传镜像这里的IP地址需要的是127.0.0.1.
在这里插入图片描述
上传完成我们可以在web端查看到镜像的信息。
在这里插入图片描述
3.其他终端远程登录harbor私有仓库。
一开始是无法正常访问的,因为https的ssl机制,所以我们需要修改docker.servie文件。
在这里插入图片描述

vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.80.105 --containerd=/run/containerd/containerd.sock重启进程和docker服务
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述
这样我就可以正常远程登录到harbor私有仓库中去了。

docker login -u admin -p Harbor12345 http://192.168.80.105

在这里插入图片描述

4.从其他终端上传镜像到harbor仓库中。
这里也需要修改镜像的标签。

docker tag harbor仓库的IP地址/项目名称/镜像名称:版本号
dcoker tag centos:7 192.168.80.105/test/centos:v1

上传至镜像仓库:

docker push 192.168.80.105/test/centos:v1

在这里插入图片描述
这样harbor仓库就完全搭建好了。

三、harbor仓库的管理操作

1.在生产环境中在需要维护harbor仓库时需要关闭其运行的所有容器,这时就需要用到docker-compose命令。
在**/usr/local/harbor**目录下运行:

docker-compose down -v

在这里插入图片描述
2.配置文件生效,除非你改了必要的参数需要重新进行安装harbor,即sh install.sh。否则其他的参数改动需要执行**./prepare**文件使得配置文件生效。
在这里插入图片描述
最后重新开启harbor仓库的命令是:

docker-compose up -d

在这里插入图片描述
在这里插入图片描述

3.harbor的用户管理:
如何创建新用户:首先在用户管理处创建新的用户。
在这里插入图片描述
输入相应的用户名和密码,点击确定进行创建。
在这里插入图片描述
显示创建成功!
在这里插入图片描述
如何管理一个用户:
在这里插入图片描述
将用户添加到项目中去:
在这里插入图片描述
添加用户名和用户的权限
在这里插入图片描述
用户成功添加到test的项目中。
在这里插入图片描述
在终端上使用普通用户登陆到harbor仓库中。首先admin用户必须要退出登陆。
在这里插入图片描述
使用普通用户上传镜像:
在使用普通用户登录后,我们可以根据其权限上传镜像到相应的项目中去。这里上传了一个tomcat的镜像。
在这里插入图片描述
tomcat的镜像成功上传到仓库中去。
在这里插入图片描述