Centos 离线安装 Docker-Harbor

689 阅读3分钟

前提条件

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

硬件最低要求推荐
CPU2 CPU4 CPU
内存4 GB8 GB
硬盘40 GB160 GB
软件版本
Docker engine17.06.0-ce+或更高
Docker Compose1.18.0或更高

部署规划

说明规划
服务器IP10.0.0.38
端口8004
安装目录/opt/module/harbor/harbor-2.9.1
数据映射目录/opt/module/harbor/harbor-2.9.1/data
日志映射目录/opt/module/harbor/harbor-2.9.1/logs
Harbor管理员密码xxxx
  1. Harbor的http协议默认端口为80,https协议默认端口为443;本次安装属于公司内网,无需https,采用http即可。为避免产生端口冲突,可以自己修改端口

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

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

离线安装包准备

  1. 准备harbor-offline-installer-v2.9.1.tgz,直接下载即可
  2. 准备goharbor_prepare_v2.9.1.tar
    docker pull goharbor/prepare:v2.9.1
    docker save -o goharbor_prepare_v2.9.1.tar goharbor/prepare:v2.9.1
    

    共准备这两个tar包,上传到指定的服务器即可

离线安装步骤

  1. 解压harbor-offline-installer-v2.9.1.tgz安装包

    tar -zxvf harbor-offline-installer-v2.9.1.tgz -C /opt/module/
    mv /opt/module/harbor /opt/module/harbor-2.9.1
    mkdir -p /opt/module/harbor
    mv -f /opt/module/harbor-2.9.1 /opt/module/harbor
    cd /opt/module/harbor/harbor-2.9.1
    
  2. 修改harbor.yml 配置文件

    cp harbor.yml.tmpl cp harbor.yml
    
    # 修改内容如下:
    hostname: 10.0.0.38 # 设置为指定部署机器IP
    http:
      port: 8084 # 从80修改为指定端口
    harbor_admin_password: 12345678 # admin用户指定密码
    data_volume: /opt/module/harbor/harbor-2.9.1/data # 数据存储目录
    log:
      ......
      local:
      ......
        location: /opt/module/harbor/harbor-2.9.1/logs # 日志目录
    
  3. 装载goharbor_prepare_v2.9.1.tar为镜像

    docker load -i goharbor_prepare_v2.4.1.tar
    
  4. 进行预处理操作

    ./prepare
    
  5. 进行安装操作

    ./install.sh
    
  6. 创建harbor服务,便于日后管理

    vim /lib/systemd/system/harbor.service
    
    # 添加以下内容
    [Unit]
    Description=Harbor
    Documentation=http://github.com/vmware/harbor
    After=docker.service systemd-networkd.service systemd-resolved.service
    Requires=docker.service
    
    [Service]
    Type=simple
    Restart=on-failure
    RestartSec=5
    ExecStart=/usr/local/bin/docker-compose -f /opt/module/harbor/harbor-2.9.1/docker-compose.yml up
    ExecStop=/usr/local/bin/docker-compose -f /opt/module/harbor/harbor-2.9.1/docker-compose.yml down
    
    [Install]
    WantedBy=multi-user.target
    
  7. 配置Docker镜像仓库为Harbor地址

    vim /etc/docker/daemon.json
    
    # 添加以下内容(注意要删除注释)
    {
    "registry-mirrors": ["https://ppc7nwnq.mirror.aliyuncs.com"], # 镜像中心
    "insecure-registries":["10.0.0.38:8004"] # 镜像仓库
    }
    
  8. 重启Docker与Harbor

    systemctl daemon-reload
    systemctl restart docker
    systemctl status docker
    systemctl start harbor
    
  9. 查看Harbor是否启动成功

    [root@one harbor-2.9.1]# docker ps
    CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS                    PORTS                                                                                    NAMES
    6bcf307e4913   goharbor/nginx-photon:v2.9.1         "nginx -g 'daemon of…"   39 minutes ago   Up 22 minutes (healthy)   0.0.0.0:8004->8080/tcp, :::8004->8080/tcp                                                nginx
    eaa74eb7c191   goharbor/harbor-jobservice:v2.9.1    "/harbor/entrypoint.…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            harbor-jobservice
    cc03f29ed039   goharbor/harbor-core:v2.9.1          "/harbor/entrypoint.…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            harbor-core
    169def34d3cf   goharbor/harbor-db:v2.9.1            "/docker-entrypoint.…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            harbor-db
    7431a5681bf9   goharbor/harbor-registryctl:v2.9.1   "/home/harbor/start.…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            registryctl
    6a8c779a8545   goharbor/redis-photon:v2.9.1         "redis-server /etc/r…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            redis
    d7f3b289bc47   goharbor/harbor-portal:v2.9.1        "nginx -g 'daemon of…"   39 minutes ago   Up 23 minutes (healthy)                                                                                            harbor-portal
    e09c460430fb   goharbor/registry-photon:v2.9.1      "/home/harbor/entryp…"   39 minutes ago   Up 22 minutes (healthy)                                                                                            registry
    ada819fc8166   goharbor/harbor-log:v2.9.1           "/bin/sh -c /usr/loc…"   39 minutes ago   Up 23 minutes (healthy)   127.0.0.1:1514->10514/tcp                                                                harbor-log
    
  10. 浏览器访问harbor web ui 10.0.0.38:8004 是否正常

    image.png

  11. Docker登录到 harbor,并推送镜像到仓库

    docker login 10.0.0.38:8004
    docker pull mysql:latest
    docker tag mysql:latest 10.0.0.38:8004/library/mysql:latest
    docker push 10.0.0.38:8004/library/mysql:latest
    

    image.png