
主旨
随着我们业务量的增大,我们自己构建的镜像难道只放到服务器本身上面嘛?我们如何存放我们自己的镜像呢,如何分享给小伙伴我们的镜像呢?要知道docker官网在国外,仓库也是,那么访问就慢,而且安全性也很重要,这样的情况我们就很有必要搭建一个属于我们自己的harbor仓库,这玩意儿就是用来存放docker镜像的。
harbor仓库包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
环境
PS:以下环境在之前的文章中都有写如何进行安装并使用,需要的话请查看往期文章。
linux环境
docker环境
docker-compose环境软件下载
harbor搭建,需要单独从github上面下载离线安装包,网络太慢,这里可以在公众号 “运维家” 后台回复 “harbor” ,即可获取下载地址。
上传解压
[yunweijia@localhost ~]$ mkdir -pv docker/harbor
mkdir: 已创建目录 "docker/harbor"
[yunweijia@localhost ~]$ cd !$
cd docker/harbor
[yunweijia@localhost harbor]$ ls
harbor-offline-installer-v1.10.10.tgz
[yunweijia@localhost harbor]$ tar xf harbor-offline-installer-v1.10.10.tgz 
[yunweijia@localhost harbor]$ ls
harbor  harbor-offline-installer-v1.10.10.tgz
[yunweijia@localhost harbor]$配置修改
[yunweijia@localhost harbor]$ cd harbor/
[yunweijia@localhost harbor]$ pwd
/home/yunweijia/docker/harbor/harbor
[yunweijia@localhost harbor]$ ls
common.sh  harbor.v1.10.10.tar.gz  harbor.yml  install.sh  LICENSE  prepare
[yunweijia@localhost harbor]$ vim harbor.yml 
# 修改主机名,可以是域名或者IP地址,但是不可以使用 localhost 和 127.0.0.1
hostname: 192.168.112.130
http:
  # 访问端口号,默认是80,这里我就按照默认的来
  port: 80
  
# 这里是https访问方式,因为我这里不配置证书,故而这里需要注释掉
# 不然会报错,不使用https,就把他们注释掉
# https:
  # https默认访问443,也可以使用其他端口
  # port: 443
  # 两个配置授权文件的路径
  # certificate: /your/certificate/path
  # private_key: /your/private/key/path
# 配置harbor用户admin的密码为 Yunweijia@123,默认是Harbor12345
harbor_admin_password: Yunweijia@123
# 数据库配置
database:
  # 数据库root用户密码,默认是 root123 ,我修改成了yunweijia123
  password: yunweijia123
  # 空闲连接池中的最大连接数
  max_idle_conns: 50
  # 打开到数据库的最大连接数
  max_open_conns: 100
# 数据存放地址,默认是data,我在这里修改成了 /home/yunweijia/docker/harbor/datadata_volume: /data
data_volume: /home/yunweijia/docker/harbor/data
# 日志存放地址,默认是 /var/log/harbor ,且200M就进行一次切割,可以自行修改
# 也可以修改日志级别,如果后期系统稳定之后,可以配置成error级别
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /home/yunweijia/docker/harbor/logs
# 输入:wq 保存退出
[yunweijia@localhost harbor]$ 
# 创建数据目录
[yunweijia@localhost harbor]$ mkdir /home/yunweijia/docker/harbor/data
# 创建日志目录
[yunweijia@localhost harbor]$ mkdir /home/yunweijia/docker/harbor/logs
[yunweijia@localhost harbor]$安装harbor
[yunweijia@localhost harbor]$ pwd
/home/yunweijia/docker/harbor/harbor
[yunweijia@localhost harbor]$ ls
common.sh  harbor.v1.10.10.tar.gz  harbor.yml  install.sh  LICENSE  prepare
[yunweijia@localhost harbor]$ sudo ./install.sh 
# 在这里需要默默的等待 ~~~
# 出现如下提示,就表示安装成功
✔ ----Harbor has been installed and started successfully.----
[yunweijia@localhost harbor]$开启防火墙端口
[yunweijia@localhost harbor]$ sudo firewall-cmd --add-port=80/tcp --permanent
success
[yunweijia@localhost harbor]$ sudo firewall-cmd --reload
success
[yunweijia@localhost harbor]$ sudo firewall-cmd --list-port
80/tcp
[yunweijia@localhost harbor]$重启harbor
[yunweijia@localhost harbor]$ pwd
/home/yunweijia/docker/harbor/harbor
[yunweijia@localhost harbor]$ sudo docker-compose down
[yunweijia@localhost harbor]$ sudo docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registryctl   ... done
Creating harbor-db     ... done
Creating redis         ... done
Creating registry      ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
[yunweijia@localhost harbor]$如果重启失败报错如下:
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-fec322c48afe -j RETURN: iptables: No chain/target/match by that name.那么就需要我们重启docker,然后再使用上面的命令重启harbor即可。
浏览器访问
访问地址 http://192.168.112.130

默认用户名是admin,密码是我们在配置文件中进行修改的密码,我这里修改的是 Yunweijia@123,输入之后界面如下:

本文安装harbor至此结束,下面我们将介绍如何使用harbor,以及如何拉取上传镜像、权限划分等。










