0x01、下载安装

官方地址:
https://github.com/goharbor/harbor/releases

下载离线安装包:
# wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz
# yum -y install lrzsz

安装compose
# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

# tar xf harbor-offline-installer-v1.8.0.tgz

配置harbor
# cd harbor
# vim harbor.yml // 主机名要可以解析(需要部署dns服务器,用/etc/hosts文件没有用),如果不可以解析,可以使用IP地址,需要修改的内容如下
hostname = 192.168.1.200
ui_url_protocol = https(如果要用https这里就需要改,现在我们先不用https,这里不需要改)
# ./install.sh

浏览器访问测试:http://192.168.1.200

Harbor 镜像仓库部署_Docker

 

 

Harbor 镜像仓库部署_Docker_02

创建仓库

Harbor 镜像仓库部署_Harbor 镜像仓库部署_03

 

Harbor 镜像仓库部署_Harbor 镜像仓库部署_04

 

 

创建账户

Harbor 镜像仓库部署_Docker_05

 

Harbor 镜像仓库部署_Harbor 镜像仓库部署_06

 

 

项目授权

Harbor 镜像仓库部署_Docker_07

 

Harbor 镜像仓库部署_Docker_08

 

0x02、测试Harbor

上传测试

[root@qfedu.com ~]# vim /etc/docker/daemon.json
{ "insecure-registries":["172.21.39.43:80"] }

[root@jenkins ~]# docker login 172.21.39.43:80
  Username: wing
  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
   # docker images
  REPOSITORY         TAG                 IMAGE ID           CREATED             SIZE
  nginx               latest             be1f31be9a87        13 days ago         109MB
   
   # docker image tag nginx 172.21.39.43:80/jenkins/nginx:v0
   # docker push 172.21.39.43:80/jenkins/nginx:v0
  The push refers to repository [harbor.io/library/nginx]
  92b86b4e7957: Pushed
  94ad191a291b: Pushed
  8b15606a9e3e: Pushed
  latest: digest: sha256:204a9a8e65061b10b92ad361dd6f406248404fe60efd5d6a8f2595f18bb37aad size: 948

在web界面中查看镜像是否被上传到仓库中

如何重启harbor

# docker-compose down
# vim harbor.yml
# ./prepare
# docker-compose up -d

【扩展】重置Harbor登陆密码

harbor现使用postgresql 数据库。不再支持mysql

注:
  卸载重新重新安装也不可以,原因是没有删除harbor的数据,harbor数据在/data/目录下边,如果真要重新安装需要将这个也删除,备份或者迁移,请使用这个目录的数据。

harbor版本为:1.8.0
官方的安装包为:harbor-offline-installer-v1.8.0.tgz

具体步骤:
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 这个密码登录了,记得修改这个默认密码哦,避免安全问题。

有更加狠点的招数,将admin账户改成别的名字,减少被攻面:
    # update harbor_user set username='wing' where user_id=1;             #更改admin用户名为wing

 

0x03、Harbor权限相关

harbor仓库的权限得配置一下,不然curl命令访问不到

Harbor 镜像仓库部署_Harbor 镜像仓库部署_09