Harbor 企业级镜像仓库搭建
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访 问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
harbor各组件介绍:

Harbor安装有3种方式
1)在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
2)离线安装:安装包包含部署的相关镜像,因此安装包比较大
3)OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harb
在此我们使用第二种离线安装方式来搭建基于 https 访问的 harbor 镜像仓库。
1.下载并解压离线安装包
harbor离线包下载地址:https://github.com/goharbor/harbor/releases
[root@docker03 ~]# tar -zxf harbor-offline-installer-v1.7.1.tgz
[root@docker03 ~]# cd harbor/
[root@docker03 harbor]# ll
total 590236
drwxr-xr-x 3 root root 23 Mar 13 13:10 common
-rw-r--r-- 1 root root 939 Jan 4 19:23 docker-compose.chartmuseum.yml
-rw-r--r-- 1 root root 975 Jan 4 19:23 docker-compose.clair.yml
-rw-r--r-- 1 root root 1434 Jan 4 19:23 docker-compose.notary.yml
-rw-r--r-- 1 root root 5608 Jan 4 19:23 docker-compose.yml
-rw-r--r-- 1 root root 8033 Jan 4 19:23 harbor.cfg
-rw-r--r-- 1 root root 603562385 Jan 4 19:24 harbor.v1.7.1.tar.gz
-rwxr-xr-x 1 root root 5739 Jan 4 19:23 install.sh
-rw-r--r-- 1 root root 11347 Jan 4 19:23 LICENSE
-rw-r--r-- 1 root root 748160 Jan 4 19:23 open_source_license
-rwxr-xr-x 1 root root 36337 Jan 4 19:23 prepare
2.自签http证书
1)获取权威认证证书
[root@docker03 harbor]# mkdir ssl
[root@docker03 harbor]# cd ssl
[root@docker03 ssl]# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
..................................................................................................................................................................................................................++
...................++
e is 65537 (0x10001)
[root@docker03 ssl]# openssl req -x509 -new -nodes -sha512 -days 3650 \
> -subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=reg.dingkai.com" \
> -key ca.key \
> -out ca.crt
[root@docker03 ssl]# ll
total 8
-rw-r--r-- 1 root root 2033 Mar 13 13:16 ca.crt
-rw-r--r-- 1 root root 3243 Mar 13 13:16 ca.key
2)获取服务端证书
1.Create your own Private Key:
[root@docker03 ssl]# openssl genrsa -out reg.dingkai.com.key 4096
Generating RSA private key, 4096 bit long modulus
...........................................................................................................................................++
.......................................++
e is 65537 (0x10001) 2.Generate a Certificate Signing Request:
[root@docker03 ssl]# openssl req -sha512 -new \
> -subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=reg.dingkai.com" \
> -key reg.dingkai.com.key \
> -out reg.dingkai.com.csr
[root@docker03 ssl]# ll
total 16
-rw-r--r-- 1 root root 2033 Mar 13 13:16 ca.crt
-rw-r--r-- 1 root root 3243 Mar 13 13:16 ca.key
-rw-r--r-- 1 root root 1708 Mar 13 13:18 reg.dingkai.com.csr
-rw-r--r-- 1 root root 3243 Mar 13 13:18 reg.dingkai.com.key 3.Generate the certificate of your registry host:
[root@docker03 ssl]# cat > v3.ext <<-EOF
> authorityKeyIdentifier=keyid,issuer
> basicConstraints=CA:FALSE
> keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
> extendedKeyUsage = serverAuth
> subjectAltName = @alt_names
>
> [alt_names]
> DNS.1=reg.dingkai.com
> DNS.2=reg.dingkai
> DNS.3=dingkai
> EOF
[root@docker03 ssl]# openssl x509 -req -sha512 -days 3650 \
> -extfile v3.ext \
> -CA ca.crt -CAkey ca.key -CAcreateserial \
> -in reg.dingkai.com.csr \
> -out reg.dingkai.com.crt
Signature ok
subject=/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=reg.dingkai.com
Getting CA Private Key
[root@docker03 ssl]# ll
total 28
-rw-r--r-- 1 root root 2033 Mar 13 13:16 ca.crt
-rw-r--r-- 1 root root 3243 Mar 13 13:16 ca.key
-rw-r--r-- 1 root root 17 Mar 13 13:27 ca.srl
-rw-r--r-- 1 root root 2102 Mar 13 13:27 reg.dingkai.com.crt
-rw-r--r-- 1 root root 1708 Mar 13 13:18 reg.dingkai.com.csr
-rw-r--r-- 1 root root 3243 Mar 13 13:18 reg.dingkai.com.key
-rw-r--r-- 1 root root 267 Mar 13 13:27 v3.ext
3)修改harbor配置,以及为Docker配置服务端证书,key和CA。
[root@docker03 ssl]# cd ../
[root@docker03 harbor]# vim harbor.cfg
......
hostname = reg.dingkai.com
ui_url_protocol = https
ssl_cert = ./ssl/reg.dingkai.com.crt
ssl_cert_key = ./ssl/reg.dingkai.com.key
harbor_admin_password = 123456
......
密码可不修改,默认登录用户admin,密码Harbor12345
Docker守护进程会将.crt文件解释为CA证书,将.cert文件解释为客户机证书,先将.crt文件转换一份.cert文件。
[root@docker03 ssl]# mkdir /etc/docker/certs.d/reg.dingkai.com
[root@docker03 ssl]# openssl x509 -inform PEM -in reg.dingkai.com.crt -out reg.dingkai.com.cert
[root@docker01 ssl]# cp reg.dingkai.com.cert reg.dingkai.com.key ca.crt /etc/docker/certs.d/reg.dingkai.com/
如果没有此步docker login将会报错:
[root@docker03 harbor]# docker login reg.dingkai.com
Username: admin
Password:
Error response from daemon: Get https://reg.dingkai.com/v2/: x509: certificate signed by unknown authority
到此自签成功!
3.初始化及安装验证
初始化安装:
[root@docker03 harbor]# ./prepare
Generated and saved secret to file: /data/secretkey
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/adminserver/env
Generated configuration file: ./common/config/core/env
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/config.yml
Generated configuration file: ./common/config/log/logrotate.conf
Generated configuration file: ./common/config/registryctl/env
Generated configuration file: ./common/config/core/app.conf
Generated certificate, key file: ./common/config/core/private_key.pem, cert file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.
[root@docker03 harbor]# ./install.sh [Step 0]: checking installation environment ... Note: docker version: 18.06.1 Note: docker-compose version: 1.22.0 [Step 1]: loading Harbor images ...
ae18db924eef: Loading layer [==================================================>] 32.92MB/32.92MB
1c06074dba9c: Loading layer
.............
Loaded image: goharbor/chartmuseum-photon:v0.7.1-v1.7.1 [Step 2]: preparing environment ...
Clearing the configuration file: ./common/config/adminserver/env
............
The configuration files are ready, please use docker-compose to start the service. [Step 3]: checking existing instance of Harbor ... [Step 4]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating redis ... done
Creating harbor-adminserver ... done
Creating harbor-db ... done
Creating registry ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating harbor-portal ... done
Creating nginx ... done ✔ ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at https://reg.dingkai.com.
For more details, please visit https://github.com/goharbor/harbor .
浏览器访问验证:
浏览器访问要做域名解析,在本地hosts(C:\Windows\System32\drivers\etc\hosts)文件中加入:10.0.0.111 reg.dingkai.com
访问:https://reg.dingkai.com,并登陆。

登录后界面基本操作:
新建项目test

新建用户kai

将用户kai设置为test项目管理员

4.服务端上传及下载镜像
首先在服务端本地做hosts解析
[root@docker01 ssl]# echo "10.0.0.111 reg.dingkai.com" >> /etc/hosts
此时可以通过docker login reg.dingkai.com 登录harbor,输入用户名及密码:
[root@docker03 ssl]# docker login reg.dingkai.com
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
上传与下载镜像,上传前需要先将镜像打tag,再上传
[root@docker03 ~]# docker tag busybox:latest reg.dingkai.com/test/busybox:v1
[root@docker03 ~]# docker push reg.dingkai.com/test/busybox:v1

可以看到项目仓库已经存在我们刚刚上传的镜像文件。
删除本地刚上传的镜像,再将仓库的镜像下载下来:
[root@docker03 ~]# docker rmi reg.dingkai.com/test/busybox:v1
Untagged: reg.dingkai.com/test/busybox:v1
Untagged: reg.dingkai.com/test/busybox@sha256:5e8e0509e829bb8f990249135a36e81a3ecbe94294e7a185cc14616e5fad96bd
[root@docker03 ~]# docker images
busybox latest e1ddd7948a1c 7 months ago 1.16MB
ubuntu latest 735f80812f90 7 months ago 83.5MB
python 2.7 17c0fe4e76a5 7 months ago 908MB
[root@docker03 ~]# docker pull reg.dingkai.com/test/busybox:v1
v1: Pulling from test/busybox
Digest: sha256:5e8e0509e829bb8f990249135a36e81a3ecbe94294e7a185cc14616e5fad96bd
Status: Downloaded newer image for reg.dingkai.com/test/busybox:v1
[root@docker03 ~]# docker images
reg.dingkai.com/test/busybox v1 e1ddd7948a1c 7 months ago 1.16MB
busybox latest e1ddd7948a1c 7 months ago 1.16MB
ubuntu latest 735f80812f90 7 months ago 83.5MB
python 2.7 17c0fe4e76a5 7 months ago 908MB
Harbor 企业级镜像仓库搭建的更多相关文章
- Harbor企业级私服Docker镜像仓库搭建及应用
一.简介 Docker Hub作为Docker默认官方公共镜像,如果想要自己搭建私有镜像,Harbor是企业级镜像库非常好的选择. 所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭 ...
- 企业级镜像仓库harbor搭建
企业级镜像仓库harbor搭建 一. Harbor概述 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服 ...
- 企业级镜像仓库Harbor
介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...
- docker企业级镜像仓库Harbor管理
Harbor概述 Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括: ...
- 企业级镜像仓库 harbor
企业级镜像仓库 harbor 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:跨 Docker 宿主机网络 overlay 类型 h ...
- 搭建Harbor企业级docker仓库
搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如 ...
- 搭建Harbor私有镜像仓库--v1.5.1
搭建Harbor私有镜像仓库--v1.5.1 1.介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境 ...
- Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用
一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...
- 部署Harbor私有镜像仓库
Harbor私有镜像仓库无坑搭建 目录 1. harbor介绍 2. docker-ce的安装 3. docker-compose的安装 4. Harbor私有仓库的安装 5. 客户端连接镜像仓库配置 ...
随机推荐
- E. The Supersonic Rocket Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)
http://codeforces.com/contest/1017/problem/E 凸包模板+kmp #include <cstdio> #include <cstdlib&g ...
- np.random.rand均匀分布随机数和np.random.randn正态分布随机数函数使用方法
np.random.rand用法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 生成特定形状下[0,1)下的均匀分布随机数 np.random.rand(a1,a2,a3...)生成形状为( ...
- SQL记录-PLSQL触发器
PL/SQL触发器 触发器是存储程序,它会自动执行或发射当一些事件发生.触发器,事实上,写入响应于以下任一事件将被执行: 数据库操作(DML)语句(DELETE,INSERT,UPDATE或) 数据库 ...
- 在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA
在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA 一. 环境 Ubuntu14.04 64位 JDK 1.8.0_73 scala-2.10. ...
- 【转】详解linux vi命令用法
功能最强在的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...
- 经典设计模式-iOS的实现
最近看了<HeadFirst 设计模式>这本书,给组内伙伴准备一次分享,把这次分享记录下来,有需要的可以看看. 这本书主要介绍了四人帮23种经典设计模式中的的14种,也是常用的几种.看完这 ...
- [BZOJ 1652][USACO 06FEB]Treats for the Cows 题解(区间DP)
[BZOJ 1652][USACO 06FEB]Treats for the Cows Description FJ has purchased N (1 <= N <= 2000) yu ...
- vue实践中的狗血事件之:mock数据引发的血坑
在项目实践中,遇到了这么一档子事 开发环境下,很快乐,什么事儿都没有,于是想打包一下测一下自动登录的效果 好家伙,一开始登录没有效,改来改去,最后连路由都切换不了, 明明开发环境下好好的,为毛打包后就 ...
- [Alg::Trick]小白鼠找毒酒
题目来源:牛客网 https://www.nowcoder.com/questionTerminal/c26c4e43c77440ee9497b20118871bf1 8瓶酒一瓶有毒,用人测试.每次测 ...
- mysql集成部署
经常听说mysql数据库是集成在系统中,也一直不太明白集成的概念.今天才明白集成的概念就是将mysql所有的文件放到一个文件夹下放到系统中,也就是将mysql采用目录迁移部署的方式进行安装.在上一篇研 ...