Docker镜像仓库Harbor部署

一、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镜像仓库Harbor部署

安装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

Docker镜像仓库Harbor部署

解压文件

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

Docker镜像仓库Harbor部署

 开始安装并启动barbor

1
cd /root/harbor/ && ./install.sh

Docker镜像仓库Harbor部署

验证

1
cd installpath && docker-compose ps

需要状态全部为UP才是成功的

Docker镜像仓库Harbor部署

浏览器输入地址就可以访问了

http://192.168.10.122

账号:admin  

密码:Harbor12345

Docker镜像仓库Harbor部署

 Docker镜像仓库Harbor部署

上传镜像到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

Docker镜像仓库Harbor部署

注意:修改.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

Docker镜像仓库Harbor部署

登录成功后才能上传镜像

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

 

Docker镜像仓库Harbor部署

上一篇:自定义exporter与gin框架集成


下一篇:题解 CF1557D Ezzat and Grid