离线方式对企业级容器镜像仓库Harbor进行搭建
Posted double-dong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了离线方式对企业级容器镜像仓库Harbor进行搭建相关的知识,希望对你有一定的参考价值。
Harbor简述
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
官方地址:https://vmware.github.io/harbor/cn/
Harbor三种角色:
Guest:对指定项目只读权限 Developer:开发人员,读写项目的权限 Admin:项目管理,所有权限 Anonymous:当用户未登录时,该用户视为匿名用户,匿名用户不能访问私有项目,只能访问公开项目
Harbor http部署
组件 功能
harbor-adminserver 配置管理中心
harbor-db mysql数据库
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.jsom
"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 reg.lan.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主机登录就不用配置以下,因为我是自签证书,因此需要配置
1、因是只签发证书,其他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
2、运行命令,更新信任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 reg.lan.com/test/mysql:5.7
查看状态以及日志
日志存放路径 ls /var/log/harbor/
docker-compose ps 查看状态
以上是关于离线方式对企业级容器镜像仓库Harbor进行搭建的主要内容,如果未能解决你的问题,请参考以下文章