Harbor私有镜像仓库

## 1. harbor概述

> harbor是采用go语言开发的私有镜像仓库服务;

## 2. 安装部署

### · 准备harbor主机

| 主机名 | ip地址 |
| ------ | --------- |
| harbor | 10.0.0.90 |

### · 准备环境

> 注意:要想安装harbor服务必须主机满足两个条件:
>
> - 必须安装了docker环境;
> - 必须安装了docker-compose环境

#### 1. 安装部署docker

```bash
#1,下载docker安装包
[root@docker01 ~]$ wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz

#2. 查看
[root@docker01 ~]$ ll
...
-rw-r--r-- 1 root root 66990280 7月 12 2023 docker-20.10.24.tgz

#3. 解压软件包
[root@harbor:~]# tar xf docker-20.10.24.tgz

#4. 授权docker执行文件
[root@harbor:~]# chown root.root docker/*

#5. 将命令文件移动到PATH路径
[root@harbor:~]# cp docker/* /usr/bin/

#6. 配置linux的内核转发
[root@harbor:~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@harbor:~]# sysctl -p
net.ipv4.ip_forward = 1

#7. 编辑systemctl启动文件
[root@harbor:~]# vim /lib/systemd/system/docker.service
[Unit]
Description=xinjizhiwa docker
Documentation=https://www.xinjizhiwa.com
#启动docker时,需要什么程序已经准备好???(没启动成功页没关系)
After=network-online.target containerd.service
#如果这个程序没准备好,依旧可以启动docker
Wants=network-online.target

[Service]
Type=notify #systemd配置,表示,docker进程启动好running/active之后再进行下一步操作;
#服务启动时执行的命令
ExecStart=/usr/bin/dockerd
# 重启进程,$MAINPID表示docker的pid变量(systemd生成的)
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0 #docker停止时等待时间,0表示伊吾县等待其优雅停止,避免强制杀死

LimitNOFILE=infinity #不限制文件打开数
LimitNPROC=infinity #不限制系统进程打开数

[Install]
WantedBy=multi-user.target

# 启动docker
[root@harbor:~]# systemctl enable --now docker.service
```

#### 2. 安装部署docker-compose

```bash
#1. 下载docker-compose文件
[root@harbor:~]# wget https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-x86_64

#2. 将文件改名
[root@harbor:~]# mv docker-compose-linux-x86_64 docker-compose

#3. 给docker-compose文件执行权限
[root@harbor:~]# chmod +x docker-compose

#4. 将docker-compose文件移动到PATH目录
[root@harbor:~]# cp docker-compose /usr/local/bin/

#5. 查看版本
[root@harbor:~]# docker-compose version
Docker Compose version v2.39.3
```

### · 官网下载harbor安装包

> 注意:需要科学上网哦

```bash
https://github.com/goharbor/harbor/releases
```

> 注意:选择最新的稳定版即可