企业级Docker容器镜像仓库Harbor的搭建


Harbor简述前端


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

官方地址:https://vmware.github.io/harbor/cn/mysql

Harbor三种角色:nginx

Guest:对指定项目只读权限 Developer:开发人员,读写项目的权限 Admin:项目管理,全部权限 Anonymous:当用户未登陆时,该用户视为匿名用户,匿名用户不能访问私有项目,只能访问公开项目git


 Harbor http部署github


组件 功能redis

harbor-adminserver 配置管理中心sql

harbor-db Mysql数据库docker

harbor-jobservice 负责镜像复制数据库

harbor-log 记录操做日志

harbor-ui Web管理页面和API

nginx 前端代理,负责前端页面和镜像上传/下载转发

redis 会话

registry 镜像存储

一 Harbor安装

• 在线安装:从Docker Hub下载Harbor相关镜像,所以安装软件包很是小

• 离线安装:安装包包含部署的相关镜像,所以安装包比较大

• OVA安装程序:当用户具备vCenter环境时,使用此安装程序,在部署OVA后启动Harbor

```
二 docker-compose 安装

1 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2 chmod +x /usr/local/bin/docker-compose 3 docker-compose --version

三 Harbor离线安装

离线安装下载离线包 https://github.com/vmware/harbor/releases

1 tar zxvf harbor-offline-installer-v1.7.5.tgz
2 cd harbor 3 vi harbor.cfg 4 hostname = 主机IP或起个域名(我使用了ip地址192.168.73.136) 5 ui_url_protocol = http 6 harbor_admin_password = 123456 7 ./prepare 8 ./install.sh

四 基本使用

其余docker主机需配置http镜像仓库可信任,才能够进行推送镜像和拉取镜像
vim /etc/docker/daemon.json
{"insecure-registries":["IP或者域名"]}
重启docker
systemctl restart docker

登录

docker login -u admin -p 12345 www.adong.com打标签

docker tag mysql:5.7 www.adong.com/test/mysql:5.7
上传镜像
REPOSITORY字段含义 docker images
第一列:镜像中心仓库
第二列:镜像标记,一个仓库能够有多个标记,不指定默认latest
第三列:镜像ID
第四列:建立时间
第五列:镜像大小
docker push www.adong.com/test/mysql:5.7
镜像中心IP/域名 项目 名称 版本
push 需先登录
docker login ip 
下载
docker pull www.adong.com/test/mysql:5.7
查看状态以及日志
日志存放路径 ls /var/log/harbor/
docker-compose ps 查看状态


Harbor HTTPS 部署


一 安装docker-compose1.23

1 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2 chmod +x /usr/local/bin/docker-compose 3 docker-compose version

三 Harbor离线安装

离线安装下载离线包 https://github.com/vmware/harbor/releases

1 tar zxvf harbor-offline-installer-v1.7.5.tgz
2 cd harbor

三 配置自签证书

若是没有权威机构颁发的证书,如下是自签证书的建立

1 mkdir ssl -p
2 cd ssl 3 #1. Create your own CA certificate: 4 openssl req -newkey rsa:4096 -nodes -sha512 -subj "/C=CN/ST=/L=/O=/OU=/CN=www.adong.com" -keyout ca.key -x509 -days 3650 -out ca.crt 5 #2.Generate a Certificate Signing Request: 6 #If you use FQDN like yourdomain.com to connect your registry host, then you must use yourdomain.com as CN (Common Name). 7 openssl req -newkey rsa:4096 -nodes -sha512 -subj "/C=CN/ST=/L=/O=e/OU=/CN=www.adong.com" -keyout www.adong.com.key -out www.adong.com.csr 8 #3.Generate the certificate of your registry host: 9 openssl x509 -req -days 3650 -in www.adong.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.adong.com.crt

四 配置文件设置

刚才第二步解压缩以后,harbor目录下会生成harbor.conf文件,该文件就是Harbor的配置文件,编辑配置文件

 1 vim harbor.cfg
 2 #hostname设置访问地址,可使用ip、域名,不能够设置为127.0.0.1或localhost 3 hostname =www.adong.com 4 # 访问协议,默认是http,也能够设置https,若是设置https,则nginx ssl须要设置on 5 ui_url_protocol = https 6 ssl_cert = ./ssl/www.adong.com.crt 7 ssl_cert_key =./ssl/www.adong.com.key 8 #启动Harbor后,管理员UI登陆的密码,默认是Harbor12345 9 harbor_admin_password = 12345

五 安装Harbor

启动 Harbor修改完配置文件后,在的当前目录执行./install.sh,Harbor服务就会根据当期目录下的docker-compose.yml开始下载依赖的镜像,检测并按照顺序依次启动

1 ./prepare
2 ./install.sh 

 

查看容器是否都启动成功

[root@localhost harbor]# docker-compose ps
       Name                     Command                  State                                    Ports                             
------------------------------------------------------------------------------------------------------------------------------------ harbor-adminserver /harbor/start.sh Up (healthy) harbor-core /harbor/start.sh Up (healthy) harbor-db /entrypoint.sh postgres Up (healthy) 5432/tcp harbor-jobservice /harbor/start.sh Up harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up (healthy) 80/tcp nginx nginx -g daemon off; Up (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp redis docker-entrypoint.sh redis ... Up 6379/tcp registry /entrypoint.sh /etc/regist ... Up (healthy) 5000/tcp registryctl /harbor/start.sh Up (healthy) 

六 访问主机配置域名

启动完成后,可使用域名访问 https://www.adong.com,默认是80 443端口,若是端口占用,能够去修改docker-compose.yml文件中,对应服务的端口映射

windows系统,hosts文件地址:C:\Windows\System32\drivers\etc,Mac系统sudo vi /private/etc/hosts 编辑hosts文件,在底部加入域名和ip,用于解析

192.168.73.136 www.adong.com

七 登陆 Web Harbor---https://www.adong.com
当前是自签的证书,不是权威机构颁发,显示不安全的连接,不影响加密
输入用户名admin,默认密码(或已修改密码)登陆系统。
项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操做日志、复制项目等
日志:仓库各个镜像create、push、pull等操做日志
系统管理
用户管理:新增/删除用户、设置管理员等
复制管理:新增/删除从库目标、新建/删除/启停复制规则等
配置管理:认证模式、复制、邮箱设置、系统设置等
其余设置
用户设置:修改用户名、邮箱、名称信息
修改密码:修改用户密码

注意:非系统管理员用户登陆,只能看到有权限的项目和日志,其余模块不可见。

用户管理--新建用户--- adong  Test@123
项目--新建项目--新建一个名称为test的项目,设置不公开。注意:当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不须要“docker login”就能够拉取此项目下的镜像。进入新建项目 test --添加成员 test.完毕后,能够用test帐户提交本地镜像到Harbor仓库了。

 

 

八 其余docker主机配置

若是是使用的权威机构颁发的证书,其余docker主机登陆就不用配置如下,由于我是自签证书,所以须要配置

一、因是只签发证书,其余Linux主机没有签发的证书,须要手工添加:

1 mkdir /etc/docker/certs.d/www.adong.com -p
2 scp root@192.168.73.136:/root/harbor/ssl/www.adong.com.crt /etc/docker/certs.d/www.adong.com

 

二、运行命令,更新信任ca

1 update-ca-trust

 

九 基本使用

登录harbor

1 docker login -u admin -p 12345 www.adong.com

给镜像打tag
docker tag mysql:5.7 www.adong.com/test/mysql:5.7
上传镜像
REPOSITORY字段含义 docker images
第一列:镜像中心仓库
第二列:镜像标记,一个仓库能够有多个标记,不指定默认latest
第三列:镜像ID
第四列:建立时间
第五列:镜像大小
docker push www.adong.com/test/mysql:5.7
镜像中心IP/域名 项目 名称 版本

 

 

下载镜像docker pull www.adong.com/test/mysql:5.7查看状态以及日志日志存放路径 ls /var/log/harbor/docker-compose ps 查看状态

相关文章
相关标签/搜索