>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26503 个阅读者 刷新本主题
 * 贴子主题:  Docker私有仓库的部署 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-27 14:57:48     消息  查看  搜索  好友  邮件  复制  引用

  

一、Harbor

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目:
(1)Harbor 的优势:

     基于角色控制;
基于镜像的复制策略;
支持 LDAP / AD;
图像删除和垃圾收集;
图形 UI;
审计;
RESTful API;

     (2)Harbor 架构组成:
1、Proxy:通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务。
2、Registry:负责存储 Docker 镜像,并处理 docker push/pull 命令。
3、Core services:Harbor的核心功能,包括 UI、webhook、token 服务。
4、Database:为 core services 提供数据库服务。
5、Log collector:负责收集其他组件的 log,供日后进行分析。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

二、私有仓库的优点:

其实,私有库的镜像最原始来源还是从公库中下载的,但是企业公司中为什么不都直接使用公库下载需要的镜像呢,允许使用 registry 搭建本地私有仓库,具备这些公库不具备的优点:
1、节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
2、提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。
接下来,具备来搭建一下 docker私有仓库:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(1)安装相关软件包:    

安装 harbor:
[root@localhost abc]# tar zvxf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
安装 docker-compose:
[root@localhost abc]# cp docker-compose /usr/bin/
//将docker-compose 复制到/bin/目录下,系统识别后,就可以直接使用 docker-compose命令了。

   (2)修改 harbor.cfg 配置文件:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(3)启动    

[root@localhost local]# cd harbor/
[root@localhost harbor]# ls
common                     docker-compose.yml     harbor.v1.2.2.tar.gz  NOTICE
docker-compose.clair.yml   harbor_1_1_0_template  install.sh            prepare
docker-compose.notary.yml  harbor.cfg             LICENSE               upgrade
[root@localhost harbor]# sh /usr/local/harbor/install.sh   //开启

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(4)查看镜像和容器是否都已启动:    

docker images      //查看镜像
docker ps -a       //查看容器
docker-compose ps  //查看容器

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(5)验证:用浏览器访问 192.168.220.131
用户名和密码等信息可以在 harbor.cfg 这个文件中,都可以查询到,如果不修改,默认的为:
用户名:admin
密 码:Harbor12345
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(6)手动创建镜像(点击 “+项目”):创建一个名为 myproject-kgc 的项目:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(7)镜像创建好之后,回到控制台,可以通过 docker 命令在本地通过 127.0.0.1 来登录和推送镜像:    

docker login -u admin -p Harbor12345 http://127.0.0.1

   (8)从公库中下载一个镜像再上传到私库中:    

[root@localhost harbor]# docker pull cirros    //下载镜像
[root@localhost harbor]# docker tag cirros 127.0.0.1/myproject-kgc/cirros:v1   //镜像更换标签

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(9)将刚刚打好标签的镜像上传到私库中    

[root@localhost harbor]# docker push 127.0.0.1/myproject-kgc/cirros

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(10)上传好之后,我们就可以在 Harbor 中看到这个镜像了:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
(11)再打开一台虚拟机,作为客户端,连接 Harbor ,来上传和下载镜像:
1、首先要修改 /usr/lib/systemd/system/docker.service 配置文件,关联上私库,添加以下代码(一定要添加,否则会出现报错):
    

--insecure-registry 192.168.220.131

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
2、加载    

systemctl daemon-reload    //重载
systemctl restart docker   //重启

   3、登录    

docker login -u admin -p Harbor12345 http://192.168.220.131

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
4、现在我们可以在这台客户机上下载私库中已经有的镜像:    

docker pull 192.168.220.131/myproject-kgc/cirros:v1

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
5、或者从公库中下载一个镜像,再打标签,上传到私库中:    

[root@localhost ~]# docker pull cirros
[root@localhost ~]# docker tag cirros:latest 192.168.220.131/myproject-kgc/cirros:v2
[root@localhost ~]# docker push 192.168.220.131/myproject-kgc/cirros:v2

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
6、此时,Harbor 中可以发现,又多了一个新上传的镜像:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
7、我们也可以将我们常用的镜像下载下来,打好标签上传到私库中:    

[root@localhost ~]# docker pull nginx
[root@localhost ~]# docker tag nginx:latest 192.168.220.131/myproject-kgc/nginx:v1
[root@localhost ~]# docker push 192.168.220.131/myproject-kgc/nginx:v1

   8、此时,Harbor 就会多出一个新镜像:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

三、管理私库:

[root@localhost harbor]# docker-compose down -v       //关闭所有容器

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小    

[root@localhost harbor]# docker-compose up -d

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
添加用户:用户管理 -----> 创建用户 (注意密码需要大写+小写)
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小    

[root@localhost ~]# docker logout http://192.168.220.131
[root@localhost ~]# docker login http://192.168.220.131

  点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小



----------------------------
原文链接:https://blog.51cto.com/14475593/2466141
原作者:Harbor-zfm

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-01-28 17:19:05 重新编辑]
  Java面向对象编程-->Java注解
  JavaWeb开发-->JSP技术详解(Ⅰ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->Socket用法详解
  精通Spring-->创建综合购物网站应用
  Vue3开发-->绑定表单
  Marshalling在Netty中的使用
  Netty权威指南:I/O 多路复用技术
  从零开始手写 spring ioc 框架,深入学习 spring 源码
  Spring 5 webflux响应式编程 - 但时间也偷换概念
  Spring配置中bean元素的id和name属性的区别
  什么是Redis?Redis的各项功能解决了哪些问题?
  从零搭建一个基于 ELK 的日志、指标收集与监控系统
  Spring Cloud Config 客户端的高可用实现
  Nginx技术探秘
  网红框架SpringBoot2.x之定制参数浅析
  Dubbo源码解析之SPI:扩展类的加载过程
  阿里面试官问我:如何用Redis设计秒杀系统?我的回答让他比起...
  Spring配置日志
  Spring @Transactional注解失效解决方案
  Spring Framework 组件注册 之 @Import
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 nihaota 
  
威望: 0
级别: 新手上路
魅力: 1315
经验: 1315
现金: 2944
发文章数: 243
注册时间: 0001-01-01
 消息  查看  搜索  好友  邮件  复制  引用


讨债公司
发文章时间 2022-10-28 20:26:51
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。