一、Harbor组件
组件 |
功能 |
harbor-adminserver |
配置管理中心 |
harbor-db |
Mysql数据库 |
harbor-jobservice |
负责镜像复制 |
harbor-log |
记录操作日志 |
harbor-ui |
Web管理页面和API |
nginx |
前端代理,负责前端页面和镜像上传/下载转发 |
redis |
会话 |
registry |
镜像存储 |
二、Harbor部署
Harbor安装有3种方式:
l 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
l 离线安装:安装包包含部署的相关镜像,因此安装包比较大
l OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
我们采用离线安装,首先下载离线安装包:https://github.com/vmware/harbor/releases
HTTP方式部署
首选安装docker
1
2
3
4
5
|
wget https: //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version |
修改仓库地址,注意这个地方很重要,如果不上传可以忽略
1
2
3
4
5
6
7
8
9
10
11
|
cat >/etc/docker/daemon.json <<EOF { "registry-mirrors" : [
"https://registry.docker-cn.com"
],
"insecure-registries" : [
"192.168.10.122"
]
} EOF |
验证是否成功
1
2
3
|
systemctl daemon-reload systemctl restart docker.service docker info |
安装docker-compose
1
|
yum install -y docker-compose |
Harbor下载地址:
https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
解压文件
tar xf harbor-offline-installer-v1.7.5.tgz
cd harbor/
编辑配置文件
vim /root/harbor/harbor.cfg 确保下面几个地方没问题,如果不是有80端口,可以加上端口号,不会与其他端口冲突,例如:192.168.10.122
1
2
3
4
5
6
7
8
9
10
11
|
#不加证书http hostname = 192.168.10.122 ui_url_protocol = http harbor_admin_password = Harbor12345 #下面的是加证的配置https #hostname = reg.fage.com #ui_url_protocol = http #ssl_cert = ./ssl/reg.fage.com.crt #ssl_cert_key = ./ssl/reg.fage.com.key #harbor_admin_password = Harbor12345 |
准备配置文件:
1
|
./prepare |
开始安装并启动barbor
1
|
cd /root/harbor/ && ./install.sh |
验证
1
|
cd installpath && docker-compose ps |
需要状态全部为UP才是成功的
浏览器输入地址就可以访问了
http://192.168.10.122
账号:admin
密码:Harbor12345
上传镜像到harbor
接下来将刚才构建的镜像推送到Harbor仓库,先看看我们要推送的镜像
docker images
在推送之前,需要注意第一列,这个完整格式是
regisry.stnrs.com/library/hello-word:latest
镜像中心域名 项目名称 名称 版本
如果镜像只放在本地存储REPOSITORY写什么都可以,但推送到镜像仓库就必须指定仓库中心地址。
所以,先打重命名REPOSITORY,其实就是引用源镜像标记了一个目标镜像
上传镜像需要先登录,不登录会报错
docker image tag nginx 192.168.10.122/library/nginx-1
docker login 192.168.10.122
docker push 192.168.10.122/library/nginx-1
登录网页看也一样能看到镜像
http://192.168.10.122/harbor/projects/1/repositories
注意:修改.cfg和.install文件中服务器的访问ip
客户端使用
如果没有加入证书就要修改这个文件才能登录
1
2
3
4
5
6
7
8
9
10
11
12
13
|
cat >/etc/docker/daemon.json <<EOF { "registry-mirrors" : [
"https://b9pmyelo.mirror.aliyuncs.com"
],
"registry-mirrors" : [
"https://registry.docker-cn.com"
],
"insecure-registries" : [
"192.168.10.112"
]
} EOF |
重置系统环境
1
2
|
systemctl daemon-reload systemctl restart docker.service |
登录成功后才能上传镜像
1
2
3
|
docker login 192.168.10.112 docker image tag nginx-v1 192.168.10.112/nginx-v1 docker push 192.168.10.112/nginx-v1 |
加密方式
1
2
3
|
docker login reg.fage.com docker image tag nginx-v1 reg.fage.com/nginx-v1 docker push reg.fage.com /nginx-v1 |