• docker企业单位私有镜像仓库 Harbor 搭建


    背景说明

    为了方便管理docker容器镜像,通常使用各大云平台提供的镜像服务,缺点就是收费。因此很多企业单位都会自行搭建私有的容器镜像管理。
    这里使用docker docker-compose 来搭建Harbor镜像管理。

    使用环境

    Docker: 20.10.12
    Docker-compose: 1.29.2
    Harbor: 2.4.1

    安装部署

    docker安装

    #卸载podman软件(可以使用rpm -qa|grep docker)
    yum remove docker
    #下载docker-ce源(国外可使用阿里源)
    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    # 直接使用阿里deocker-ce源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 指定docker版本 20.10.12 这里安装k8s 1.23.6
    yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io docker-compose-plugin
    # 重启docker
    systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    docker-compose安装

    注意docker和docker-compose有版本对应,需要自行查验

    #从国外服务器下载并安装docker-compose
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    # 授权
    chmod +x /usr/local/bin/docker-compose
    
    • 1
    • 2
    • 3
    • 4

    国外下载比较慢,亲们都懂的,所以推荐国内源

    #从国内服务器https://get.daocloud.io下载并安装docker-compose
    curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    # 授权
    chmod +x /usr/local/bin/docker-compose
    
    • 1
    • 2
    • 3
    • 4
    # 查询安装版本
    docker-compose --version
    
    • 1
    • 2

    在这里插入图片描述

    安装 Harbor

    官网给出了两种安装模式,在线安装包或离线安装包。其区别是离线安装包里面含有镜像,在线版本在安装时则去Docker Hub拉取镜像。我们这里使用离线安装包。

    # 下载离线包
    wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
    # 解压
    tar zxvf harbor-offline-installer-v2.4.1.tgz
    cd harbor
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这存在问题 使用wget 下载很慢,可以使用迅雷下载,下载完成后上传主机即可。

    在 harbor 文件夹里可以看到有一份文件 harbor.yml.tmpl,这是 Harbor 的配置信息,我们复制一份并进行修改(以下仅显示修改部分):

    # 复制生成配置文件
    cp harbor.yml.tmpl harbor.yml
    # 修改配置
    vi harbor.yml
    
    • 1
    • 2
    • 3
    • 4

    这里只使用http 80端口即可,使用https 443需要签发证书,自行签发证书是不授信的,需要配置docker文件,如是k8s集群,各个节点存在增减,维护起来相对困难,直接使用http 80即可。

    配置文件只需要修改的项

    # Configuration file of Harbor
    
    # The IP address or hostname to access admin UI and registry service.
    # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
    hostname: 47.14.7.36 # 本机IP
    
    # http related config
    http:
    # port for http, default is 80. If https enabled, this port will redirect to https port
    port: 80 # hhtp80端口
    
    # https related config
    #https:   #不启用https 使用https需要配置证书而且证书必须授信否则docker无法登录和拉取镜像
    # https port for harbor, default is 443
    #port: 8443 #443端口修改
    # The path of cert and key files for nginx
    #certificate: /usr/local/harbor/data/cert/harbor.yunzaixian.top.crt #后续生产的正书
    #private_key: /usr/local/harbor/data/cert/harbor.yunzaixian.top.key #后续生产的正书
    
    # # Uncomment following will enable tls communication between all harbor components
    # internal_tls:
    # # set enabled to true means internal tls is enabled
    # enabled: true
    # # put your cert and key files on dir
    # dir: /etc/harbor/tls/internal
    
    data_volume: /usr/local/harbor/data/images # 文件保存目录
    location: /usr/local/harbor/data/logs # 日志保存目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    配置完成后执行构建启动

    ./install.sh --with-chartmuseum
    
    • 1

    Harbor UI管理

    直接访问安装主机地址,端口号80
    http://IP:80
    或者使用域名解析到当前主机
    如:http://harbor.yunzaixian.top
    在这里插入图片描述
    使用默认账号/密码登录
    admin/Harbor12345

    docker 登录

    docker 上传镜像和拉取镜像都需要登录到 harbor中

    # 登录 harbor
    docker login -u admin -p Harbor12345 http://harbor.yunzaixian.top
    
    • 1
    • 2

    docker推送镜像和拉取镜像

    docker推送镜像

    首先docker需要将镜像打tag
    docker tag 镜像名:TAG harbor地址/项目/镜像名:TAG
    其次执行推送
    docker push harbor地址/项目/镜像名:TAG
    如:
    docker tag my-toos:1.001 harbor.yunzaixian.top/my-toos/my-toos:1.001
    docker push harbor.yunzaixian.top/my-toos/my-toos:1.001

    docker 拉取镜像

    docker推送完镜像后点击项目
    在这里插入图片描述
    进入镜像详细
    在这里插入图片描述
    拉取镜像命令复制
    docker pull 19.19.10.34/application-monitor/application-monitor@sha256:62125e99c07e7a7798b2244ca7cdd458edce31b9397b3765aaa5f89b3d22bd7b
    在这里插入图片描述
    最后docker启动镜像到容器即可

  • 相关阅读:
    (二)算法分析
    C++ Primer第5版 习题答案 第十二章
    mysql 逻辑备份 恢复数据
    ArcGIS 10.2 自定义添加工具箱后工具箱显示XML错误
    【好文转载】曲线的切向量怎么求?和平面法向量的联系
    zcu106 lwip搭建以太网配置寄存器
    uniapp使用renderjs实现echarts
    【CSS】QQ邮箱布局,词典四列布局,行内布局
    npm i -S vue-router vuex axios element-ui
    设计接口应该考虑的因素以及遵循的原则
  • 原文地址:https://blog.csdn.net/yxt625520/article/details/133924167