Harbor

Harbor官网:Harbor (goharbor.io)

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能

安装Harbor

  • 下载镜像,安装docker-compose
  1. [root@server ~]# wget https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz
  2. [root@server h~]# yum install docker-compose -y
  • 解压
  1. [root@server ~]# tar xzvf harbor-offline-installer-v2.3.1.tgz
  • 拷贝配置文件,去注释
  1. [root@server ~]# cd harbor
  2. [root@server harbor]# ls
  3. common.sh harbor.v2.3.1.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
  4. [root@server harbor]# cp harbor.yml.tmpl harbor.yml
  5. [root@server harbor]# grep -Ev '#|^$' harbor.yml.tmpl > harbor.yml
  • 查看配置文件/root/harbor/harbor.yml

Docker仓库管理之Harbor - 图1

  • 对配置文件进行修改
[root@server harbor]# vim harbor.yml

hostname: 192.168.31.99
http:
  port: 80
harbor_admin_password: Harbor12345
database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.3.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
  • 安装Harbor
[root@server harbor]# ./prepare
[root@server harbor]# ./install.sh

在执行完这俩条命令之后,在harbor目录下就会有一个docker-compose.yml文件

之后的启动关闭可以通过docker-compose管理,自动生成docker-compose.yml文件

Docker仓库管理之Harbor - 图2

  • 查看端口是否启动(80端口)

Docker仓库管理之Harbor - 图3

Web界面

安装完成后,就可以访问IP地址进入Harbor的Web界面了,如下图所示

用户名为admin

密码为Harbor12345

Docker仓库管理之Harbor - 图4

登录之后的页面

Docker仓库管理之Harbor - 图5

新建项目

Docker仓库管理之Harbor - 图6

进入这个项目,点击推送命令,会有推送教程

Docker仓库管理之Harbor - 图7

  • 登录到仓库前的配置
# 修改json文件,否则登录会出错
[root@server ~]# vim /etc/docker/daemon.json 

{
  "registry-mirrors": ["https://lgni0v8s.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.31.99"]
}
# 重启服务
[root@server ~]# systemctl daemon-reload 
[root@server ~]# systemctl restart docker
[root@server ~]# cd /root/harbor/
[root@server harbor]# docker-compose up -d
  • 登录仓库
[root@server harbor]# docker login 192.168.31.99
Username: admin
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
  • 打标签以及推送镜像
[root@server harbor]# docker tag nginx:v1 192.168.31.99/project/nginx:v1
[root@server harbor]# docker push 192.168.31.99/project/nginx:v1
The push refers to repository [192.168.31.99/project/nginx]
ed653d229c55: Pushed 
0434051e19d0: Pushed 
436be098e532: Pushed 
0c042312b037: Pushed 
174f56854903: Pushed 
v1: digest: sha256:bd8ebcdd082039f048bb0ab4f2aabd429e9615c773df92412b0310e198007137 size: 1372

Docker仓库管理之Harbor - 图8

Docker仓库管理之Harbor - 图9

点击也可以进行复制拉取镜像

Docker仓库管理之Harbor - 图10