# 8. docker之Harbor企业级镜像仓库
# Harbor概述
- Harbor是由VMWare公司开源的容器镜像仓库,事实上,Harbor是在docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用。
- 这些新的企业级特性包含:管理用户界面,基于角色的访问控制,AD/LDAP集成,审计日志等,足以满足企业的基本需求
- 官方地址:https://goharbor.io/
# Harbor组件
- harbor-adminserver:配置管理中心
- harbor-db:Mysql数据库
- harbor-jobservice:负责镜像复制
- harbor-log:记录操作日志
- harbor-ui:Web管理页面和API
- nginx:前端代理,负责前端页面和镜像上传/下载转发
- redis:会话保持
- registry:镜像存储
# Harbor安装有3种方式
- 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
- 离线安装:安装包包含部署的相关镜像,因此安装包比较大
- OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbo
# 安装docker-compose
安装harbor需要安装docker三剑客之一docker-compose
# 第一种方式安装
官方的安装方式:线上安装
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
##如果网络不好,推荐第二种安装
# 第二种办法安装
离线安装,事先下载好
cp -a docker-compose-Linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose --version
# Habor部署
这边部署是采用离线安装,安装包事先下载好的
Harbor版本:harbor-offline-installer-v1.10.2.tgz
# 解压harbor压缩包
tar -zxf harbor-offline-installer-v1.10.2.tgz
cd harbor
# 在harbor里面有几个比较重要的文件
- prepare:部署前的准备工作脚本
- install.sh:安装脚本
- harbor.cfg:harbor的主配置文件
- docker-compose.yml:docker-compose的配置文件,因为harbor需要安装docker-compose,我们在上面已经先安装过了
# 修改harbor.cfg配置文件
vim harbor.cfg
hostname = 192.168.31.180 ##修改这行为IP地址或域名
harbor_admin_password: Harbor12345 ##默认的登录密码,不用修改,搭建完之后web界面可修改管理员密码,用户名:admin
# 需要注释的行
#https:
# https port for harbor, default is 443
#port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
# 为什么要注释,因为harbor新版本默认开启https,那么需要相关https证书,如果准备开启https的话,就可以把证书放在相对目录中,那么就不需要注释
# 安装harbor
./prepare ## 校验环境需求
./install.sh ## 安装
# 测试harbor是否成功
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
harbor-core /harbor/harbor_core Up (health: starting)
harbor-db /docker-entrypoint.sh Up (health: starting) 5432/tcp
harbor-jobservice /harbor/harbor_jobservice ... Up (health: starting)
harbor-log /bin/sh -c /usr/local/bin/ ... Up (health: starting) 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up (health: starting) 8080/tcp
nginx nginx -g daemon off; Up (health: starting) 0.0.0.0:80->8080/tcp
redis redis-server /etc/redis.conf Up (health: starting) 6379/tcp
registry /home/harbor/entrypoint.sh Up (health: starting) 5000/tcp
registryctl /home/harbor/start.sh Up (health: starting)
# 进入harbar的web界面
本地IP就可以直接进入,默认是80端口
默认账号:admin
默认密码:Harbor12345
# harbor的简单实例
# 创建用户
用户管理-->创建用户
# 创建项目
项目-->新建项目
# 给用户授权新建的项目
项目-->qqkj-->成员-->+用户
# 配置http镜像仓库信任
因为docker默认只支持https,所以我们要让docker支持指定链接的http
# 修改daemon.json文件配置
vim /etc/docker/daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries":["192.168.0.72"]
}
或
{"insecure-registries":["192.168.0.72"]}
## 第一条,是因为我事先有配置了docker的加速器
## 博主在这里也出了问题,不过把加速器配置删除后,就可以正常使用了
# 重启docker
systemctl restart docker
# 启动harbor的组件
启动harbor仓库,一定要到harbor安装目录中执行命令
docker-compose up -d
# 要上传的镜像打标签
如果不打标签,会默认上传到docker的公共镜像仓库中
docker image tag nginx:v1 192.168.0.72/msg/nginx:v1
# 登录认证harbor仓库
帐号密码是harbor仓库新创建的账号
docker login 192.168.0.72
# 上传镜像到harbor仓库中
要先登录才能上传
docker image push 192.168.0.72/msg/nginx:v1
# 从harbor仓库拉取镜像
要先登录才能下载
docker image pull 192.168.0.72/msg/nginx:v1