zoukankan      html  css  js  c++  java
  • 安装Harbor并修改默认使用的80端口

    一、Harbor

    容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的Registry是非常必要的。Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

    Harbor官网

    二、安装Harbor的前提条件

    根据官网说明,简单描述一下安装Harbor前需要的主要条件:

    硬件 最低要求 推荐
    CPU 2 CPU 4 CPU
    内存 4 GB 8 GB
    硬盘 40 GB 160 GB
    软件 版本
    Docker engine 17.06.0-ce+或更高
    Docker Compose 1.18.0或更高

    三、部署规划

    说明 规划
    服务器IP 192.168.113.48
    端口 8930
    安装目录 /home/work/harbor
    数据映射目录 /home/work/harbor/data
    日志映射目录 /home/work/harbor/logs
    Harbor管理员密码 h12345

    Harbor的http协议默认端口为80,https协议默认端口为443;本次安装属于公司内网,无需https,采用http即可。为避免产生端口冲突,可以自己修改端口

    Harbor的数据映射目录默认为/data,日志映射目录默认为/var/log/harbor;此处为了统一管理,将数据目录和日志目录统一放在安装目录之下。

    Harbor安装成功后,会生成一个管理员用户,用户名为admin,密码默认为Harbor12345,密码可改可不改。

    四、安装Harbor

    • 安装方式:可在线安装或离线安装。本次安装采用离线安装方式。

    • 下载安装包,本次安装时最新版本为2.1.0,可自行选择安装版本。将harbor-offline-installer-v2.1.0.tgz下载到windows本地,然后通过ftp工具将文件上传到/home/work目录下。官方最新版地址

    • 解压安装包,解压后就会在当前目录生成一个harbor目录

      tar xvf harbor-offline-installer-v2.1.0.tgz
      

      BFevUx.png

      解压后会目录中就会包含上图中所示文件,其中harbor.yml.tmpl文件就是Harbor的模板配置文件。

    • 拷贝一份harbor.yml.tmpl文件命名为harbor.yml,并按照规划编辑并保存该文件

      cp harbor.yml.tmpl harbor.yml
      vim harbor.yml
      

      BFKqW6.png

      BFKbJx.png

      BFKHF1.png

    • 由于没有使用https,为了避免Harbor启动后不能从Docker中登录到Harbor当中,需要修改并保存Docker的配置

      vim /usr/lib/systemd/system/docker.service
      
      #需要修改的地方
      ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.113.48:8930
      

      BF1Bpq.png

      ExecStart这一行的末尾加上--insecure-registry=IP:端口

    • 重新加载配置,并重启Docker服务(生产环境慎用!!!)

      #重新加载配置
      systemctl daemon-reload
      #重启Docker服务
      systemctl restart docker
      
    • 每次修改harbor的配置文件之后,都需要在安装目录下执行prepare命令,否则配置文件不生效

      [root@node03 harbor]# ./prepare 
      prepare base dir is set to /home/work/harbor
      WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
      Generated configuration file: /config/portal/nginx.conf
      Generated configuration file: /config/log/logrotate.conf
      Generated configuration file: /config/log/rsyslog_docker.conf
      Generated configuration file: /config/nginx/nginx.conf
      Generated configuration file: /config/core/env
      Generated configuration file: /config/core/app.conf
      Generated configuration file: /config/registry/config.yml
      Generated configuration file: /config/registryctl/env
      Generated configuration file: /config/registryctl/config.yml
      Generated configuration file: /config/db/env
      Generated configuration file: /config/jobservice/env
      Generated configuration file: /config/jobservice/config.yml
      Generated and saved secret to file: /data/secret/keys/secretkey
      Successfully called func: create_root_cert
      Generated configuration file: /compose_location/docker-compose.yml
      Clean up the input dir
      

      命令执行完成之后,目录内容如下图所示:

      BFYGdO.png

    • 编辑并保存docker-compose.yml文件

      proxy:
          image: goharbor/nginx-photon:v2.1.0
          container_name: nginx
          restart: always
          cap_drop:
            - ALL
          cap_add:
            - CHOWN
            - SETGID
            - SETUID
            - NET_BIND_SERVICE
          volumes:
            - ./common/config/nginx:/etc/nginx:z
            - type: bind
              source: ./common/config/shared/trust-certificates
              target: /harbor_cust_cert
          networks:
            - harbor
          dns_search: .
          ports:
            #此处原本为80:8080,将80端口修改为8930端口
            - 8930:8080
          depends_on:
            - registry
            - core
            - portal
            - log
      
    • 利用docker-compose启动harbor

      docker-compose up -d
      

      启动成功如下图所示:

      BFtx3j.png

    五、验证Harbor

    • 在浏览器中输入ip:端口,访问Harbor的Web页面,用户名为admin,密码为自己设置的密码。

      BFUnJg.png

      BFUuWQ.png

    • 在docker中登录harbor,用户和密码同上

      [root@node03 harbor]# docker login 192.168.113.48:8930
      Username: admin
      Password: 
      WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
      Configure a credential helper to remove this warning. See
      https://docs.docker.com/engine/reference/commandline/login/#credentials-store
      
      Login Succeeded
      You have new mail in /var/spool/mail/root
      [root@node03 harbor]#
      
    • 将本地镜像打上tag,然后将镜像push到harborn当中(push镜像步骤:login-->tag-->push

      [root@node03 harbor]# docker tag mysql:5.7 192.168.113.48:8930/library/mysql:5.7
      [root@node03 harbor]# docker images
      REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
      sonatype/nexus3                     latest              d4fbb85e8101        2 days ago          634MB
      gitlab/gitlab-ce                    latest              b0c27d1707a0        6 days ago          1.98GB
      192.168.113.48:8930/library/mysql   5.7                 42cdba9f1b08        9 days ago          448MB
      mysql                               5.7                 42cdba9f1b08        9 days ago          448MB
      jenkins/jenkins                     lts                 f669140ba6ec        2 weeks ago         711MB
      goharbor/redis-photon               v2.1.0              45fa455a8eeb        5 weeks ago         68.7MB
      goharbor/harbor-registryctl         v2.1.0              98f466a61ebb        5 weeks ago         132MB
      goharbor/registry-photon            v2.1.0              09c818fabdd3        5 weeks ago         80.1MB
      goharbor/nginx-photon               v2.1.0              470ffa4a837e        5 weeks ago         40.1MB
      goharbor/harbor-log                 v2.1.0              402802990707        5 weeks ago         82.1MB
      goharbor/harbor-jobservice          v2.1.0              ff65bef832b4        5 weeks ago         165MB
      goharbor/harbor-core                v2.1.0              26047bcb9ff5        5 weeks ago         147MB
      goharbor/harbor-portal              v2.1.0              5e97d5e230b9        5 weeks ago         49.5MB
      goharbor/harbor-db                  v2.1.0              44c0be92f223        5 weeks ago         164MB
      goharbor/prepare                    v2.1.0              58d0e7cee8cf        5 weeks ago         160MB
      [root@node03 harbor]# docker push 192.168.113.48:8930/library/mysql:5.7
      The push refers to repository [192.168.113.48:8930/library/mysql]
      bdda49371b83: Pushed 
      78a9edf56b5f: Pushed 
      2e19acd09cf6: Pushed 
      30f9c7764a3f: Pushed 
      15b463db445c: Pushed 
      c21e35e55228: Pushed 
      36b89ee4c647: Pushed 
      9dae2565e824: Pushed 
      ec8c80284c72: Pushed 
      329fe06a30f0: Pushed 
      d0fe97fa8b8c: Pushed 
      5.7: digest: sha256:3830eda172a0285aa9899c422f26d739cde0ad5445962fbb9a2a8b0df00a1a64 size: 2621
      [root@node03 harbor]# 
      
      

      到harbor中查看,发现镜像已经成功push:

      BFdoi8.png

    • 从harbor当中拉取镜像

      先将镜像删除,然后从harbor中pull镜像:

      [root@node03 harbor]# docker rmi 192.168.113.48:8930/library/mysql:5.7
      Untagged: 192.168.113.48:8930/library/mysql:5.7
      Untagged: 192.168.113.48:8930/library/mysql@sha256:3830eda172a0285aa9899c422f26d739cde0ad5445962fbb9a2a8b0df00a1a64
      [root@node03 harbor]# docker images
      REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
      sonatype/nexus3               latest              d4fbb85e8101        2 days ago          634MB
      gitlab/gitlab-ce              latest              b0c27d1707a0        6 days ago          1.98GB
      mysql                         5.7                 42cdba9f1b08        9 days ago          448MB
      jenkins/jenkins               lts                 f669140ba6ec        2 weeks ago         711MB
      goharbor/redis-photon         v2.1.0              45fa455a8eeb        5 weeks ago         68.7MB
      goharbor/harbor-registryctl   v2.1.0              98f466a61ebb        5 weeks ago         132MB
      goharbor/registry-photon      v2.1.0              09c818fabdd3        5 weeks ago         80.1MB
      goharbor/nginx-photon         v2.1.0              470ffa4a837e        5 weeks ago         40.1MB
      goharbor/harbor-log           v2.1.0              402802990707        5 weeks ago         82.1MB
      goharbor/harbor-jobservice    v2.1.0              ff65bef832b4        5 weeks ago         165MB
      goharbor/harbor-core          v2.1.0              26047bcb9ff5        5 weeks ago         147MB
      goharbor/harbor-portal        v2.1.0              5e97d5e230b9        5 weeks ago         49.5MB
      goharbor/harbor-db            v2.1.0              44c0be92f223        5 weeks ago         164MB
      goharbor/prepare              v2.1.0              58d0e7cee8cf        5 weeks ago         160MB
      [root@node03 harbor]# docker pull 192.168.113.48:8930/library/mysql:5.7
      5.7: Pulling from library/mysql
      Digest: sha256:3830eda172a0285aa9899c422f26d739cde0ad5445962fbb9a2a8b0df00a1a64
      Status: Downloaded newer image for 192.168.113.48:8930/library/mysql:5.7
      192.168.113.48:8930/library/mysql:5.7
      [root@node03 harbor]# docker images
      REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
      sonatype/nexus3                     latest              d4fbb85e8101        2 days ago          634MB
      gitlab/gitlab-ce                    latest              b0c27d1707a0        6 days ago          1.98GB
      192.168.113.48:8930/library/mysql   5.7                 42cdba9f1b08        9 days ago          448MB
      mysql                               5.7                 42cdba9f1b08        9 days ago          448MB
      jenkins/jenkins                     lts                 f669140ba6ec        2 weeks ago         711MB
      goharbor/redis-photon               v2.1.0              45fa455a8eeb        5 weeks ago         68.7MB
      goharbor/harbor-registryctl         v2.1.0              98f466a61ebb        5 weeks ago         132MB
      goharbor/registry-photon            v2.1.0              09c818fabdd3        5 weeks ago         80.1MB
      goharbor/nginx-photon               v2.1.0              470ffa4a837e        5 weeks ago         40.1MB
      goharbor/harbor-log                 v2.1.0              402802990707        5 weeks ago         82.1MB
      goharbor/harbor-jobservice          v2.1.0              ff65bef832b4        5 weeks ago         165MB
      goharbor/harbor-core                v2.1.0              26047bcb9ff5        5 weeks ago         147MB
      goharbor/harbor-portal              v2.1.0              5e97d5e230b9        5 weeks ago         49.5MB
      goharbor/harbor-db                  v2.1.0              44c0be92f223        5 weeks ago         164MB
      goharbor/prepare                    v2.1.0              58d0e7cee8cf        5 weeks ago         160MB
      [root@node03 harbor]# 
      

      拉取镜像是否有权限需要根据harbor项目权限和项目的成员权限共同决定,若harbor中项目为公开项目,则不用登录harbor即可pull镜像;若项目为私有,则只有项目中的成员能够对镜像进行下一步操作。具体权限请参照官方文档。

      harbor中成员角色权限说明

  • 相关阅读:
    身份证相关类
    微信开发相关文档
    password、文件MD5加密,passwordsha256、sha384、sha512Hex等加密
    图的割点(边表集实现)
    动态库DLL中类的使用
    吴恩达机器学习笔记_第三周
    Android官方开发文档Training系列课程中文版:性能优化建议
    简单算法汇总
    Gson解析第三方提供Json数据(天气预报,新闻等)
    Java字节码 小结
  • 原文地址:https://www.cnblogs.com/linanjie/p/13912017.html
Copyright © 2011-2022 走看看