Harbor离线安装

Harbor是VMWare公司开发的,用来完善Docker Registry的功能。使用Harbor,可以:

按项目管理镜像;

记录用户对镜像仓库项目的操作,包含create、push 、delete、pull等操作;

有直观的图形界面;有用户管理,可以针对项目进行细粒度的权限控制;

仓库内的镜像可以在图形界面删除与复制,垃圾清理;

可以同步已有镜像仓库的镜像;API控制中心!

准备工作

安装 Harbor 前需要先安装 Dockerdocker-compose

以上需要用的到的安装下载完成后,并上传到服务上,开始安装。

安装Docker

在线安装Docker 参考这里。

执行如下命令:

1
2
3
4
# 安装docker前需要先安装selinux、pigz依赖
yum localinstall container-selinux-2.107-3.el7.noarch.rpm
yum localinstall pigz-2.3.3-1.el7.centos.x86_64.rpm
yum localinstall docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

依次执行上述三个命令,docker 安装完成。

启动Docker

1
2
3
4
5
6
> systemctl enable docker # 添加自启动服务
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

> systemctl start docker # 启动

> docker version # 查看安装的版本

建立Docker用户组

1
2
3
> groupadd docker # 建立 docker 组

> usermod -aG docker $USER # 添加当前的用户到用户组

Docker-compose安装

docker-compose 是实现对 Docker 容器集群的快速编排.

1
2
3
4
5
# 把下载好的docker-compose 二进制文件上传到/use/local/bin 目录下
> chmod +x /usr/local/bin/docker-compose # 添加执行权限

> docker-compose --version
docker-compose version 1.24.1, build 4667896b

/usr/local/bin/ 这个路径需要在用户环境变量中。

Harbor 安装

dockerdocker-compse 安装完成,接下来安装 Harbor

1
2
# 解压 harbor 压缩文件
tar zxf harbor-offline-installer-v2.4.0.tgz

配置harbor.yml

进入到刚解压完的harbor目录下,配置 harbor.yml

1
2
3
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

参数说明:

hostname:访问的Harbor服务的IP或域名(UI与命令行操作同样生效),不要使用localhost127.0.0.10.0.0.0

data_volume: Harbor中的数据挂载对应宿主机的位置,如/home/harbor/data

harbor_admin_password: admin管理员密码,默认管理员账号/密码为(admin/Harbor12345)

database: Harbor内部的数据库

password: 数据库密码

max_idle_conns: 连接池最大保持空闲数

max_open_conns: 同时最大开启的连接数

如果想配置更仔细些,请 参考Github

安装

1
2
# 在harbor目录下执行
./install.sh

等待安装命令执行完成,执行以下命令查看 harbor启动了哪些服务

1
2
3
4
5
6
7
8
9
10
11
12
13
docker-compse ps

Name Command State Ports
-----------------------------------------------------------------------------------------
harbor-core /harbor/entrypoint.sh Up (healthy)
harbor-db /docker-entrypoint.sh 96 13 Up (healthy)
harbor-jobservice /harbor/entrypoint.sh Up (healthy)
harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up (healthy)
nginx nginx -g daemon off; Up (healthy) 0.0.0.0:80->8080/tcp
redis redis-server /etc/redis.conf Up (healthy)
registry /home/harbor/entrypoint.sh Up (healthy)
registryctl /home/harbor/start.sh Up (healthy)

到此 Harbor 安装完成。

登录Harbor

通过浏览器访问 hostname 配置的IP地址。输入 harbor_admin_password 配置的用户名和密码登录。

登录进入系统

测试Harbor

接下来测试下,使用 docker push 到这个仓库中,在测试之前我们需要在 /etc/docker/daemon.json 文件中添加如下内容。

1
2
3
{
"insecure-registries": ["192.168.31.22:80"]
}

注意:刚才配置的hostname后需要写明80端口,如果是域名则不需要

改好后,重启docker服务 systemctl restart docker

登录仓库

1
docker login 192.168.31.22:80

初次登录需要使用用户名与密码,这个是在Harbor用户管理中配置的,admin用户拥有最高权限。

我们将本地 redis 的镜像重新 tag

1
2
3
4
# 重新tag后才能推送
docker tag redis:latest 192.168.31.22:80/library/redis:latest
# 推送镜像tag后的镜像到harbor仓库
docker push 192.168.31.22:80/library/redis:latest

在Harbor的UI界面 -> 项目 -> library中即可查看

删除本地刚才tag的镜像,我们pull下来试试

1
2
3
4
5
6
7
8
#删除本地镜像
docker rmi 192.168.31.22:80/library/redis:latest
#pull Harbor镜像仓库中的镜像
docker pull 192.168.31.22:80/library/redis:latest

latest: Pulling from library/redis
Digest: sha256:76ff608805ca40008d6e0f08180d634732d8bf4728b85c18ab9bdbfa0911408d
Status: Downloaded newer image for 192.168.31.22:80/library/redis:latest

一切正常,至此 harbor 仓库服务搭建完成了。

原文作者: dgb8901,yinxing

原文链接: https://www.itwork.club/2021/12/14/install-harbor/

版权声明: 转载请注明出处

为您推荐

体验小程序「简易记账」

关注公众号「特想学英语」

Add SCSS config for old React project.