• docker- harbor私有仓库部署与管理


    什么是 harbor

    harbor是一个开源的云原生镜像仓库,它允许用户存储、签名、和分发docker镜像。可以将 harbor 看作是私有的docker hub ,它提供了更新安全性和控制性,让组织能够安全的存储和管理镜像

    harbor RBAC(基于角色访问控制),可以对不同的用户和用户组进行领过全向控制,并且提供灵活的复制和同步策略,可以实现多个 harbor 实例的镜像复制和同步

    Harbor的特性
    1. 基于角色控制

    2. 基于镜像的复制策略

    3. 支持 LDAP/AD

    4. 镜像删除和垃圾回收

    5. 图形化用户界面

    6. 审计管理

    7. 支持 restful API

    docker Harbor核心组件
    • proxy

    通过一个反向代理同意接受浏览器 docker客户端请求的,并且将请求转发给后端不同的服务,是一个方向海里组件

    • registry

    发原则存储docker镜像 处理 docker pull/push 命令来上传和下载

    • core services

    horbar的核心功能,包括 ui、oken、webhook

    webhook:负责网站的一些服务功能

    token:令牌 提供身份认证服务

    ui:显示可视化界面

    • databases

    为 core services 提供数据的服务 数据库记录镜像的元信息以及用户的身份信息

    • log collector

    负责收集其他组件的一些日志,一共我们进行分析以及健康检查等

    • job services

    只要做镜像物质,本地镜像可以同步到其它harbor私有仓库中

    • adminserver

    主要是做一个后端配置数据管理者,没有太多功能

    Docker-Harbor数据流向

    docker私有仓库的过程:
    1. 所有的请求或热味的操作都会首先交给 proxy(反向代理)

    2. proxy 会先将请求转发给后端 core services

    3. core services包括 ui【web界面】、token【身份认证】、webhook【网站的一些服务功能 】

    4. 转发给 regiistry【镜像存储】,若需要下载镜像等权限操作,需要通过 core services中 token令牌的身份验证服务才行

    5. 每一次下载和上传 都会产生操作记录,生成日志 ,保存 databases中

    6. databases 记录保存镜像源信息以及用户与组身份 的信息,通过验证授权才能与允许相关操作

    私有仓库指向私有仓库的方式有两种
    1. 1. /etc/dockerdaemon.josn
    2. 2. /usr/lib/systemd/system/docker.service
    3. 添加: insecure-registrues $harbor_ip (私有仓库的ip地址)
    搭建本地私有仓库
    1. #首先下载 registry 镜像
    2. docker pull registry
    3. #在 daemon.json 文件中添加私有镜像仓库地址
    4. vim /etc/docker/daemon.json
    5. {
    6. "insecure-registries": ["192.168.86.44:5000"], #添加,注意用逗号结尾
    7. "registry-mirrors": ["https://ae3f5qei.mirror.aliyuncs.com"]
    8. }
    9. systemctl restart docker.service
    10. #运行 registry 容器
    11. docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
    12. #为镜像打标签
    13. docker tag centos:7 192.168.86.44:5000/centos:v1
    14. #上传到私有仓库
    15. docker push 192.168.86.44:5000/centos:v1
    16. #列出私有仓库的所有镜像
    17. curl http://192.168.86.44:5000/v2/_catalog
    18. #出私有仓库的 centos 镜像有哪些tag
    19. curl http://192.168.86.44:5000/v2/centos/tags/list
    20. #先删除原有的 centos 的镜像,再测试私有仓库下载
    21. docker rmi -f 8652b9f0cb4c
    22. docker pull 192.168.86.44:5000/centos:v1
    1. 部署 Docker-Compose 服务
    2. 1、下载或者上传 Docker-Compose
    3. curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    4. chmod +x /usr/local/bin/docker-compose
    5. docker-compose --version
    6. 2、部署 Harbor 服务
    7. 1)下载或上传 Harbor 安装程序
    8. wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
    9. tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
    10. 2)修改harbor安装的配置文件
    11. vim /usr/local/harbor/harbor.cfg
    12. --5
    13. hostname = 192.168.86.44
    14. 【修改,设置为Harbor服务器的IP地址或者域名】
    15. ---59
    16. admin/Harbor12345
    17. harbor_admin_password = Harbor12345
    18. 【指定管理员的初始密码,默认的用户名/密码是】
    19. 3、 启动 Harbor
    20. cd /usr/local/harbor/
    21. 在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
    22. 再执行命令 ./install.sh 【先删除registry容器】以 pull 镜像并启动容器
    23. 4、查看 Harbor 启动镜像
    24. cd /usr/local/harbor/
    25. docker-compose ps

    1. 创建一个新项目
    2. 1)浏览器访问:http://192.168.86.44 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345
    3. 2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮
    4. 3)填写项目名称为“myproject-kgc”,点击“确定”按钮,创建新项目
    5. 4)此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,Registry 服务器在端口 80 上侦听。
    6. //登录 Harbor
    7. docker login http://127.0.0.1
    8. Useradd:admin
    9. Password:Harbor12345
    10. //下载镜像进行测试
    11. docker pull nginx
    12. //将镜像打标签
    13. 格式:docker tag 镜像:标签 仓库IP/项目名称/镜像名:标签
    14. docker tag nginx:latest 127.0.0.1/ky30-kgc/nginx:v1
    15. //上传镜像到 Harbor
    16. docker push 127.0.0.1/ky30-kgc/nginx:v1
    17. 5)在 Harbor 界面 myproject-kgc 目录下可看见此镜像及相关信息

     

     

  • 相关阅读:
    前端项目如何找到所有未被引用的文件
    Python 运算符和表达式
    2022年认证杯SPSSPRO杯数学建模A题(第一阶段)人员的紧急疏散求解全过程文档及程序
    【Python 实战基础】Pandas中Series的创建和数据类型转换
    使用 XML 配置定义和管理 Spring Bean
    [Rust GUI]0.10.0版本iced代码示例 - progress_bar
    【Python】多线程
    ElasticSearch的介绍、安装、基本概念
    与“客户”沟通技巧
    gorm-增删改查
  • 原文地址:https://blog.csdn.net/2301_78069073/article/details/133777008