博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Harbor安装与Https配置
阅读量:6407 次
发布时间:2019-06-23

本文共 3472 字,大约阅读时间需要 11 分钟。

Harbor简介:

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

Harbor下载:

国外下载地址:
国内下载地址:
docker-compose,下载地址,

注:Harbo需要安装docker,及docker-compose,安装方法这里不再细说。

1、解压及修改配置文件

# tar zxvf harbor-offline-installer-v1.5.1.tgz# cd harbor# vim harbor.cfg

根据需要配置相应的访问ip,密码等

2、准备配置文件

# ./prepare

3、安装

# ./install.sh

安装成功后,访问配置ip即可

Harbor安装与Https配置

4、端口修改

因为harbor默认端口为80,而大多数时候是不希望使用80端口的,修改端口方法如下:
在harbor目录下
(1)、修改docker-compose.yml文件

# vim docker-compose.ymlproxy:    image: vmware/nginx-photon:v1.5.1    container_name: nginx    restart: always    volumes:      - ./common/config/nginx:/etc/nginx:z    networks:      - harbor    ports:      - 8070:80      - 443:443

(2)\修改common/templates/registry/config.yml文件

# vim common/templates/registry/config.ymlauth:  token:    issuer: harbor-token-issuer    realm: $public_url:8070/service/token    rootcertbundle: /etc/registry/root.crtservice: harbor-registry

5、镜像推送

# docker login 192.168.xxx.xx:xx

在此之前在harbor创建用户及项目,并在项目中添加对应用户。

镜像打包时候需要按一定规则tag:(test为新建项目名称)

# docker tag mysql 192.168.100.127:8070/test/mysql_test# docker pull 192.168.100.127:8070/test/mysql_test

游览器打开Harbor即可看到推送的镜像~

备注:

若推送镜像报以下错误:

Error response from daemon: Get : http: server gave HTTP response to HTTPS client

原因为,docker默认使用的是https协议,而搭建的Harbor是http提供服务的,所以要配置可信任。PS:如果Harbor是https的就不会报该错误,https配置见最后。

方法1、修改docker配置文件:

# vim /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --insecure-registry=192.168.100.127:8070

修改完毕后按安装步骤走一遍即可。

方法2、

# vim /etc/docker/daemon.json{ "registry-mirrors": ["http://xxx0.m.daocloud.io"] "insecure-registries":["192.168.100.127:8070"]}

配置完以后重启一下docker

6、删除镜像及垃圾回收:

若知识在Harbor客户端删除,只是删除了标记,存储文件仍然存在,删除实际的文件存储库使用注册中心的垃圾收集(GC)。GC运行时如果有人推一个镜像,还存在一种风险,即镜像的层将被错误删除导致镜像损坏。在GC运行之前,首选的方法是先停止Harbor

# docker-compose stop# docker run -it --name gc --rm --volumes-from registry goharbor/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml# docker-compose stop

官方用户手册:

7、Htpps配置harbor:

因为测试使用,使用自签名证书:

(1)、创建CA证书:

# openssl req -newkey rsa:4096 -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

其中:(req:申请证书签署请求;-newkey 新密钥 ;-x509:可以用来显示证书的内容,转换其格式,给CSR签名等X.509证书的管理工作,这里用来自签名。)

(2) 、生成证书签名请求:

# openssl req -nodes -newkey rsa:4096 -sha256 -keyout yourdomain.com.key -out yourdomain.com.csr

(3)、生成证书:

# openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt

备注:若需要添加多个地址(允许链接的ip等)

# echo subjectAltName = IP:192.168.100.xx > extfile.cnf # openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com.crt

(4)、配置harbor.cfg:

#set hostname  hostname = xxxx     #域名或ip  #set ui_url_protocol  uiurlprotocol = https    #这里改为https****  ......  #The path of cert and key files for nginx, they are applied only the protocol is set to https   ssl_cert = /cert/yourdomain.com.crt     #crt位置  ssl_cert_key = /cert/yourdomain.com.key  #key的位置

(5)、配置启动harbor:

# docker-compose down    # ./prepare    #  docker-compose up –d

(6)、测试

1、访问,https://配置的ip或域名(若nginx的443配置了其他端口需要加上对应端口号)

2、# docker login xxxx

若报错x509: certificate signed by unknown authority:

Harbor安装与Https配置

需要把之前制作的ca证书添加到信任(因为是自签名证书):

# mkdir –p /etc/docker/certs.d/hostname# cp ca.crt /etc/docker/certs.d/hostname/ca.crt# systemc   restart docker.service

再次测试docker login xxxx,成功登陆~

Harbor安装与Https配置

转载于:https://blog.51cto.com/bilibili/2165513

你可能感兴趣的文章
js事件委托总结
查看>>
蚂蚁金服数据质量治理架构与实践
查看>>
一篇文章了解大前端
查看>>
IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
查看>>
Quiz - 回顾
查看>>
消息队列系列二(IOT中消息队列的应用)
查看>>
写了一个个人资产管理的后台系统
查看>>
JavaScript隐式类型转换
查看>>
Web前端开发标准规范
查看>>
PAT A1079
查看>>
HTML面试题整理总结
查看>>
电脑不支持MOV怎么办 怎么快速将mov格式转换为MP4
查看>>
152. Maximum Product Subarray
查看>>
vue+node全栈移动商城【6】-node接口配置文件
查看>>
小程序音视频功能的原理及应用
查看>>
Kotlin整合Vertx开发Web应用
查看>>
前端常用设计模式(2)--策略模式(strategy)
查看>>
991. Broken Calculator
查看>>
如何实现一个简化版的 jQuery
查看>>
AWS CLI 命令行直接操作AWS控制台
查看>>