### 一、概述

1. Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,操作其实是非常简单易行的

2. 环境准备

Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以需要安装Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0

3. 安装并启动docker[docker20.10.4教程](https://zmzycc.top/archives/docker-an-zhuang)

4. 安装docker-compose

```

wget https://github.com/docker/compose/releases/download/v2.17.1/docker-compose-linux-x86_64

mv docker-compose-linux-x86_64 /usr/bin/docker-compose

chmod +x /usr/bin/docker-compose

```

5. 验证

```

root@zy:/opt# docker-compose --version

Docker Compose version v2.17.1

```

6. Harbor服务搭建及启动

```

#下载离线包(有网络可以下载在线包)

wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz

tar -zxvf harbor-offline-installer-v2.5.6.tgz

cd harbor

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

```

![image-1680491574163](https://zmzycc.top/upload/2023/04/image-1680491574163.png)

6. 执行部署脚本:./install.sh

----Harbor has been installed and started successfully.---- #出现这个就表示安装成功

7. 现在去访问:http://ip:2000

```

Harbor用户/密码: 用户默认登录账户admin 默认密码是Harbor12345

```

![image-1680436895395](https://zmzycc.top/upload/2023/04/image-1680436895395.png)

7. 设为开机自启

vim /etc/systemd/system/harbor.service

```

[Unit]

Description=Harbor

After=docker.service systemd-networkd.service systemd-resolved.service

Requires=docker.service

Documentation=http://github.com/vmware/harbor

[Service]

Type=simple

Restart=on-failure

RestartSec=5

ExecStart=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml up

ExecStop=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml down

[Install]

WantedBy=multi-user.target

```

chmod +x /etc/systemd/system/harbor.service #授权

systemctl enable harbor #开机自启

systemctl start harbor

8. 利用http 上传镜像报以下错误提示和解决

```

#错误提示

docker push 192.168.0.138:2000/webserver/nginx:v1

The push refers to repository [192.168.0.138:2000/webserver/nginx]

Get https://192.168.0.138:2000/v1/: http: server gave HTTP response to HTTPS client

#解决方法

vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://registry.docker-cn.com", "https://hub-mirror.c.163.com"],

"insecure-registries": ["192.168.0.138:2000"] #添加这行内容,IP地址和端口修改成自己的

}

```

docker推送到Harbor命令

```

1.先登录

docker login 192.168.0.138:2000

2.为镜像打标记

docker tag 镜像名:TAG harbor地址/项目/镜像名:TAG #重命名镜像

3. 推送镜像

docker push harbor地址/项目/镜像名:TAG

```

9. 重启docker服务

systemctl restart docker

10. docker服务重启后,相关harbor容器有可能关闭,需要重启

docker-compose restart