Harbor介绍

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能.

虽然使用 docker hub 官方的镜像 registry 也可以简单搭建.但是没有可视化界面,权限管理什么的好像也不完整.

环境准备

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

安装并启动Docker

参考官网教程,使用centos,使用存储库进行安装.

卸载旧版本.如果之前有安装.

1
2
3
4
5
6
7
8
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库.

1
2
3
4
5
sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

安装docker引擎

1
sudo yum install docker-ce docker-ce-cli containerd.io

可能会提示您接受GPG密钥,一般都没有问题.如果害怕请登录docker 官网验证.

启动 docker

1
sudo systemctl start docker

通过运行hello-world 映像来验证是否正确安装了Docker Engine.

1
sudo docker run hello-world

设置开机启动

1
sudo systemctl enable docker

安装docker-compose

1
sudo yum install docker-compose

Harbor服务搭建及启动

下载Harbor安装文件

github下载指定版本的安装程序.

解压安装程序

1
tar xvf harbor-offline-installer-version.tgz

创建目录用于存放harbor的持久化数据

1
mkdir -p /opt/application/harbor

配置Harbor

1
vim harbor.cfg

配置文件harbor.cfg详解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
hostname: 192.168.0.8
#需要写IP地址或者域名

#http配置
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80

#https配置(如不需要可不配置)
# https related config
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path

harbor_admin_password: Harbor12345 #admin密码

#数据库配置
database:
# The password for the root user of Harbor DB. Change this before any production use.
password: root123
# The maximum number of connections in the idle connection pool. If it <=0, no idle connections are retained.
max_idle_conns: 50
# The maximum number of open connections to the database. If it <= 0, then there is no limit on the number of open connections.
# Note: the default number of connections is 100 for postgres.
max_open_conns: 100


#持久化数据目录

data_volume: /opt/application/harbor

安装启动Harbor

1
./install.sh

常用管理命令

停止服务: docker-compose stop

开始服务: docker-compose start

gui界面使用

直接浏览器打开上面配置的hostname + 端口就可以了.

上传镜像

修改Docker配置

docker 默认是按 https 请求的,由于我搭的私有库是 http 的,所以需要修改 docker 配置,将信任的库的地址写上.

修改文件vim /etc/docker/daemon.json

1
2
3
4
5
{
"insecure-registries": [
"192.168.0.8"
]
}

然后重启docker

1
systemctl restart docker

制造镜像

1
docker tag nginx 192.168.0.8/library/nginx

上传

登陆私有库

1
docker login 192.168.0.8

push

1
docker push 192.168.0.8/library/nginx

(完)