暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Harbor,构建企业远程镜像仓库

原创 benson123 2023-06-30
111

概述

  • 随着Docker在2013年的诞生,由于其简单、易用、快速构建一次性应用环境等特点,容器化及相关技术快速进入了企业的各类应用场景
  • 很多公共工具、第三方工具的服务厂商,都将自己的产品或工具容器化,提供基于Docker的公共镜像,给到需要的客户,像JRE、Redis、MySQL等;这些公共镜像一般都放置于Docker的官方的远程镜像仓库hub.docker.com或一些云厂商的远程镜像仓库进行托管,用于被拉取并使用
  • 同时,很多运营私有业务的企业或组织,有着大量私有的、基于Docker容器化的代码及镜像,需要管理、维护并部署成应用;这些镜像,一般不能放到公共的远程镜像仓库
  • 此时,企业就有私有远程镜像仓库的强烈需要
  • Harbor,就能满足企业的这种需求

Harbor简介

  • Harbor是一个用于存储、分发Docker镜像的企业级远程镜像仓库服务器工具
  • 相比Docker官方提供的公共的远程镜像仓库和第三方云厂商的远程镜像仓库,具备更高的安全性、更高的效率,且自主可控
  • 除了存储和分发镜像之外,还具有用户管理、项目管理、配置管理和日志查询、高可用部署等主要功能

安装

Cent OS 7中安装步骤如下:

  1. 安装Docker,具体参考Docker安装教程

  2. 安装Docker-compose
    下载:


    curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    添加权限:


    chmod +x /usr/local/bin/docker-compose
  3. 安装wget(如果已经安装,可省略此步)


    yum -y install wget
  4. 在自定义目录下载Harbor


    wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz
  5. 解压Harbor


    tar xvf harbor-online-installer-v1.8.1.tgz
  6. 修改Harbor目录下的配置文件,主要修改host ,如
    hostname: 192.168.227.6

  7. 安装后,首次启动Harbor,在解压Harbor的目录下,执行shell脚本文件


    ./install.sh
  8. 访问Harbor,通过http://ip在浏览器访问并进行用户、项目等管理,如http://192.168.227.6,默认用户名/密码如下
    admin/Harbor12345

  9. 再次启动时,Harbor未启动,可在Harbor目录下,通过docker-compose启动,命令如下


    docker-compose up -d

注意:这种安装方式为http方式,如果要使用https方式安装,需要使用证书,具体可参考https://goharbor.io/

使用

  • Harbor远程镜像仓库服务器安装好后,所有的Docker引擎、K8S集群或是其他基于Docker的容器化工具,就可以直接使用安装的Harbor作为远程镜像仓库,进行镜像的共享、管理、应用
  • 同时,还可以继续使用公共的远程镜像仓库或其他镜像仓库

在Docker引擎中使用Harbor远程镜像仓库

  • 准备工作:由于使用的是非https方式的Harbor远程镜像仓库,在Docker引擎的主机上,对Docker.service要做如下配置

    • 修改/usr/lib/systemd/system/docker.service服务文件,在ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock后添加--insecure-registry=Harbor IP,如--insecure-registry=192.168.227.6
    • 重新加载服务配置并重启 

      systemctl daemon-reload systemctl restart docker
  • 登录Harbor:使用如下命令,并按提示输入用户名和密码


    docker login 192.168.227.6

    如果登录成功,会提示:Login Successed.

  • 给本地镜像打上标签

    • 对于通过docker build在本地已经打包好的镜像,可以使用docker tag将本地镜像打上具有Harbor远程镜像仓库前缀的标签,格式为:镜像仓库地址或IP/项目/镜像名称:版本;可使用类似如下命令: 

      docker tag itp/itp-backend:latest 192.168.227.6/itp/itp-backend:latest
    • 此时,本地镜像仓库将会有一个名称192.168.227.6/itp/itp-backend:latest的镜像
  • 推送到Harbor远程镜像仓库:使用如下命令,即可将具有Harbor前缀的镜像推送到Harbor远程镜像仓库:


    docker push 192.168.227.6/itp/itp-backend:latest
  • 从Harbor远程镜像仓库拉取镜像到本地仓库:在其他Docker引擎的主机,通过上述准备工作、登录同一个Harbor后,即可拉Harbor远程镜像仓库的镜像,并进行使用;使用如下命令


    docker pull 192.168.227.6/itp/itp-backend:latest



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论