dockerhub私服-Harbor操作手册

时间:2024-10-22 18:12:58

1登录Harbor网页版

http://ip:port/
输入账户名和密码,点击登录
在这里插入图片描述

登录后便可看到页面信息
在这里插入图片描述

1.1项目
点击进入项目页面,页面展示当前有权限的所有项目和相关功能
在这里插入图片描述
进入具体项目会有docker push命令提示
在这里插入图片描述

1.1.1新建项目
Harbor的项目分为公开和私有的:
公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目。
私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。
点击新建项目输入项目信息、访问级别
在这里插入图片描述

创建成功后,自动显示在项目页
在这里插入图片描述

1.1.1.1镜像仓库
进入项目显示当前项目下所有镜像仓库
在这里插入图片描述

1.1.1.2删除镜像仓库
进入项目选中镜像,可对页面镜像仓库连同仓库内镜像进行删除(此时harbor空间并未得到释放
在这里插入图片描述
在这里插入图片描述

1.1.1.3复制
##镜像复制 如果你是系统管理员,你可以将仓库中的镜像文件同步到远端的registry(也就是你的目标Harbor)有主从关系才需用到该功能。
1.1.1.4标签
可对项目库打标签作为记号例如back没实际作用
在这里插入图片描述

1.1.2日志
所有的操作日志将被通过点击日志列出来,你可以通过高级搜索中用户名、操作以及日期去搜索相关操作日志
在这里插入图片描述

1.1.3配置管理
设置项目库访问级别公开或私有
在这里插入图片描述

1.1.4设置项目角色和移除成员
选择成员,点击页面中的“其他操作”,可对角色进行调整和用户移除
在这里插入图片描述

1.1.5添加项目成员
添加成员到已经存在的项目中
角色权限划分:
项目管理员:增删改查
开发人员:上传和下载
访客:只允许下载

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

1.1.6删除项目
选中项目删除无用项目及其镜像

在这里插入图片描述

1.2系统管理
1.2.1用户管理
管理员用户可以添加/取消管理员角色给普通用户,以提升/取消权限,当然也可以重置密码和删除某个用户。
在这里插入图片描述

新建用户
系统管理→用户管理→创建用户输入新用户信息
caijie/CaiJie520
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置/取消管理员
管理员可以添加/取消管理员角色给普通用户,以提升/取消权限

在这里插入图片描述
在这里插入图片描述
重置密码或删除
选中用户点击操作,选中重置密码或删除当前用户
在这里插入图片描述

1.2.2仓库管理
新建目标主要用于主从配置,实际工作中该章节节用不到不进行详细描述
在这里插入图片描述

1.2.3复制管理
同仓库管理,主要用户主从服务,这里不进行描述
1.2.4配置管理
1.2.4.1认证模式

实际部门中会使用LDAP进行认证
在这里插入图片描述

1.2.4.2邮箱
设置邮箱通知功能
在这里插入图片描述

1.2.4.3系统设置
采用默认信息
在这里插入图片描述

1.2.4.4标签
新建标签信息,没有实际作用可忽略该环节
在这里插入图片描述

1.2.4.5垃圾清理
方法一:
随着harbor镜像仓库使用时间的变长,harbor的磁盘空间也越来越小,在UI界面进行镜像删除之后并不会释放空间,因为这是软删除,还需要在服务器上使用垃圾回收(gc)功能进行磁盘空间内文件的删除,可以设置定时任务删除。

在这里插入图片描述

方法二:
Harbor私有仓库中如何彻底删除镜像释放存储空间?
根据Harbor用户手册中的相关说明
① 先在Harbor UI图形界面中删除不需要的镜像
② 要启用垃圾回收(GC),首先要关闭Harbor服务,然后再执行清理命令
③ 停止Harbor相关服务
④ $ docker-compose stop
⑤ 使用–dry-run参数运行容器,预览运行效果,但不删除任何数据
⑥ 不使用–dry-run参数,将删除相关的文件和镜像,

docker run -it --name gc --rm --volumes-from registry goharbor/registry-photon:v2.6.2-v1.7.8 garbage-collect --dry-run  /etc/registry/config.yml
  • 1

⑧ 不使用–dry-run参数,将删除相关的文件和镜像,

docker run -it --name gc --rm --volumes-from registry goharbor/registry-photon:v2.6.2-v1.7.8 garbage-collect /etc/registry/config.yml
  • 1

⑩ 再次查看存放镜像的目录大小:

du -sh /data/registry/docker/registry/v2/
  • 1

docker-compose start
  • 1

2终端操作

2.1登录私有dockerhub
docker login -u 用户名 -p ip(密码 harbor所在)

[root@VM-30-90-centos ~]# docker login -u caijie -p Caijie520 10.0.30.90
  • 1

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
2.1.1从容器创建一个新的镜像
若当前容器正在运行,为保证数据一致性请先停止容器,在进行镜像制作
[root@VM-30-90-centos ~]# docker stop tomcat //停止容器
[root@VM-30-90-centos ~]# docker commit -a "caijie" -m "developers_commit" tomcat tomcat:V1.0 //创建镜像
[root@VM-30-90-centos ~]# docker images //查看镜像

2.1.2给镜像打tag

[root@VM-30-90-centos ~]# docker tag tomcat:V1.0 10.0.30.90/library/tomcat:V1.0

tomcat:V1.0:IMAGE ID,可以用docker images 查看
 10.0.30.90:私有hub域名或地址
 libary:项目名称,,一般libary中存放一些公共镜像
 tomcat:镜像名称,在web页面中显示
 V1.0:镜像版本号在web页面中显示
2.1.3推送镜像push到harbor私库

[root@VM-30-90-centos ~]# docker push 10.0.30.90/library/chartmuseum-photon:V1.0
  • 1

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

docker push 10.0.30.90/library/tomcat:V2.0
  • 1

从镜像创建一个新的容器
[root@VM-30-90-centos ~]# docker run -ti --name tomcat -p 8084:8080 10.0.30.90/tomcat/tomcat:one
root@25f527fe5b18:/usr/local/tomcat#
2.1.4从harbor私库上拉取镜像pull
在这里插入图片描述

2.1.5复制harbor中pull命令直接在终端执行
在这里插入图片描述

3可能会用到的操作命令

3.1 Docker commit 命令
docker commit :从容器创建一个新的镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
runoob@runoob:~$ docker commit -a “” -m “my apache” a404c6c174a2 mymysql:v1
3.2查找文件
 1.按照文件名查找
 (1)find / -name #在根目录下查找文件,表示在整个硬盘查找
 (2)find /etc -name #在/etc目录下文件
 (3)find /etc -name ‘srm’#使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
 (4)find . -name ‘srm*’ #表示当前目录下查找文件名开头是字符串‘srm’的文件

3.3容器停止删除镜像删除
Docker stop停止/remove删除所有容器
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器
$ docker rmi -f $(docker images -qa)//删除所有镜像
3.4 Linux开放端口
1、开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效
2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
3.、关闭防火墙
如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
systemctl stop
4、查看防火墙状态
firewall-cmd --state
5、查看监听的端口
netstat -lnpt

4常见问题及解决方案

问题1:must be forced
删除镜像报:
Error response from daemon: conflict: unable to delete 7035479438b4 (must be forced) - image is referenced in multiple repositories
解决办法:执行docker rmi -f tag:版本
docker rmi -f 10.0.30.90/library/chartmuseum-photon:V1.0 10.0.30.90/library/chartmuseum-photon:V2.0
问题2:初始账户密码错误
问题描述:重新安装harbor后总登录总是显示账户密码数据
方法一:修改数据库
1、进入[harbor-db]容器内部
docker exec -it harbor-db /bin/bash
2、进入postgresql命令行,
psql -h postgresql -d postgres -U postgres #这要输入默认密码:root123 。
psql -U postgres -d postgres -h 127.0.0.1 -p 5432 #或者用这个可以不输入密码。
3、切换到harbor所在的数据库
\c registry
4、查看harbor_user表
select * from harbor_user;
5、例如修改admin的密码,修改为初始化密码Harbor12345 ,修改好了之后再可以从web ui上再改一次。
update harbor_user set password=‘a71a7d0df981a61cbb53a97ed8d78f3e’, salt=‘ah3fdh5b7yxepalg9z45bu8zb36sszmr’ where username=‘admin’;
6、退出 \q 退出postgresql,exit退出容器。
\q
exit
完成后通过WEB UI,就可以使用admin 、Harbor12345 这个密码登录了,记得修改这个默认密码哦,避免安全问题。
方法二:删除数据卷
解决方案:删除docker-compose中数据卷文件,重新执行进入/harbor目录下执行安装
数据卷路径地址从中查找
cat /home/harbor/harbor/ (harbor安装地址,根据实际情况查找)
[root@VM-30-90-centos harbor]# ./ \重新安装
再次登录就可以了
问题3:(web页面删除老版本镜像新的也没有了)
场景:修改tag
[root@VM-30-90-centos harbor]# docker tag 10.0.30.90/library/chartmuseum-photon:V1.0 10.0.30.90/library/chartmuseum-photon:V2.0
[root@VM-30-90-centos harbor]# docker push 10.0.30.90/library/chartmuseum-photon:V2.0
v1和v2的tag同时存在,如果这个结果已经能够满足要求,即之前的tag存在也不介意,registry和harbor可以使用同样的方式解决,至此就可以结束了,但是如果希望原有的v1的tag删除,
Harbor web页面选中v1,然后点击 Delete按钮,结果就是v1和v2都会删除
解决办法:
在harbor web页面中先删除tagV1.0再push2.0

问题4:code=exited, status=1/FAILURE
docker启动报错(code=exited, status=1/FAILURE)
解决办法
解决:如果是配置了国内镜像,并且镜像文件为/etc/docker/,则修改文件后缀为.conf即可正常启动docker 服务

问题5:终端登录失败
场景:初始账户密码登录失败
解决:网上找了很多解决方案皆未成功,重装了低版本harbor则登录成功。