Docker入门与应用实战之企业级镜像仓库Harbor
更新:HHH   时间:2023-1-7


1.Harbor概述

Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访 问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
官方地址:https://vmware.github.io/harbor/cn/
组件 功能 harbor-adminserver 配置管理中心 harbor-db Mysql数据库 harbor-jobservice 负责镜像复制 harbor-log 记录操作日志 harbor-ui Web管理页面和API nginx 前端代理,负责前端页面和镜像上传/下载转发 redis 会话 registry 镜像存储

2.Harbor部署

Harbor安装有3种方式: 
• 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小 
• 离线安装:安装包包含部署的相关镜像,因此安装包比较大 
• OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor

# tar zxvf harbor-offline-installer-v1.6.1.tgz
# cd harbor 
# vi harbor.cfg 
hostname = 10.206.240.188/域名   
ui_url_protocol = http 
harbor_admin_password = 123456  #默认密码为Harbor12345 
# ./prepare 
# ./install.sh

3. 基本使用

1、配置http镜像仓库可信任
# vi /etc/docker/daemon.json 
{"insecure-registries":["reg.ctnrs.com"]}
# systemctl restart docker
2、打标签
# docker tag centos:6 reg.ctnrs.com/library/centos:6
3、上传
# docker push reg.ctnrs.com/library/centos:6
4、下载
# docker pull reg.ctnrs.com/library/centos:6

4.实战演练

1.安装Docker Compose
官网:https://docs.docker.com/compose/
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

2.Harbor部署
# tar zxvf harbor-offline-installer-v1.6.1.tgz -C /opt/
# cd /opt/harbor 
# vi harbor.cfg 
hostname = 192.168.16.120  
ui_url_protocol = http 
harbor_admin_password = Harbor12345
注:其实只需要更改hostname才可以使用harbor
# ./prepare 
# ./install.sh

查看端口:
# netstat -tnlp|grep 80
开机自动启动:
# cat >>/etc/rc.d/rc.local<<EOF
cd /opt/harbor/ && docker-compose up -d
EOF
chmod +x /etc/rc.d/rc.local

3.配置Harbor
http://192.168.16.120
admin/Harbor12345

创建项目:ops、project  私有项目,library 公有项目
创建用户:denggao/P@ssw0rd
项目授权:角色 项目管理员

注:公共镜像仓库无需登录即可下载,登录才开上传。私有镜像仓库需要登录上传与下载。

4.配置http镜像仓库可信任
# vi /etc/docker/daemon.json 
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries":["192.168.16.120"]
}
# systemctl restart docker

5.推送镜像到镜像仓库
docker login 192.168.16.120   #公有私有仓库推送都需要认证 denggao/P@ssw0rd
docker tag  php:v1 192.168.16.120/library/php:v1
docker push 192.168.16.120/library/php:v1
docker tag  nginx:v1 192.168.16.120/library/nginx:v1
docker push 192.168.16.120/library/nginx:v1
docker tag  tomcat:v1 192.168.16.120/library/tomcat:v1
docker push 192.168.16.120/library/tomcat:v1

6.下载镜像
docker pull 192.168.16.120/library/php:v1
docker pull 192.168.16.120/library/nginx:v1
docker pull 192.168.16.120/library/tomcat:v1


使用admin/Harbor12345登录,跳转如下界面

创建私有项目,名称分别为ops、project



创建用户

客户端配置http镜像仓库可信任,并推送镜像到镜像仓库即可。


最后其它docker客户端就可以是docker pull下载所需的镜像使用了。


返回云计算教程...