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 | 镜像存储 |
Harbor部署
Harbor安装有3种方式:
• 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
• 离线安装:安装包包含部署的相关镜像,因此安装包比较大
• OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
tar zxvf harbor-offline-installer-v1.6.1.tgz cd harbor/ 上传docker-compose-Linux-x86_64,安装Harbor会用到 mv docker-compose-Linux-x86_64 /usr/bin/docker-compose chmod +x /usr/bin/docker-compose vi harbor.cfg hostname = 10.0.0.11 ui_url_protocol = http harbor_admin_password = Harbor12345 ./prepare ./install.sh
配置http镜像仓库可信任
vi /etc/docker/daemon.json
加入Harbor仓库的地址
"insecure-registries":["10.0.0.11"
重启docker服务
systemctl restart docker
[root@node1 harbor]# docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------------------------------------------- harbor-adminserver /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-ui /harbor/start.sh Up (healthy) 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 Harbor的启动和关闭 docker-compose up -d docker-compose down
访问本机的http://10.0.0.11/harbor/sign-in,进行登录Harbor仓库。账户admin,密码:Harbor12345
用户管理--->创建用户
项目---->新建项目,可以新建私有项目或者公开项目
推送本地镜像到Harbor仓库
列出本地所有镜像
[root@node1 harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE php v1 6ce2506e774c 3 days ago 513MB tomcat v1 ac4b03a3a337 3 days ago 427MB nginx v1 30e83fef10b3 3 days ago 341MB mysql 5.7 98455b9624a9 2 weeks ago 372MB nginx latest 2bcb04bdb83f 2 weeks ago 109MB centos 7 9f38484d220f 4 weeks ago 202MB
在推送到仓库之前需将本地镜像的标签打成仓库指定标签类
docker tag SOURCE_IMAGE[:TAG] 10.0.0.11/library/IMAGE[:TAG] docker push 10.0.0.11/library/IMAGE[:TAG]
分别将nginx、tomcat、php的镜像打上标签,并推送到Harbor仓库(在推送之前,需login到Harbor仓库)
docker login 10.0.0.11 docker tag php:v1 10.0.0.11/library/php:v1 docker tag nginx:v1 10.0.0.11/library/nginx:v1 docker tag tomcat:v1 10.0.0.11/library/tomcat:v1 docker push 10.0.0.11/library/php:v1 docker push 10.0.0.11/library/nginx:v1 docker push 10.0.0.11/library/tomcat:v1
拉取Harbor仓库的镜像到本地
docker pull 10.0.0.11/library/php:v1 docker pull 10.0.0.11/library/nginx:v1 docker pull 10.0.0.11/library/tomcat:v1