Harbor 企业私有仓库安装配置文档

1 .环境准备

– 机器操作系统: CentOS7

安装 Docker:

    1. 下载 Docker 官方安装源
        # wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    2. 使用 yum 安装 Docker
        # yum -y install docker-ce

安装 Docker-compose:

    1. 安装 epel 源:
        # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    2. 使用 yum 安装 python-pip
        # yum -y install python-pip
    3. 使用 pip 安装 docker-compose
        # pip install docker-compose

下载离线安装包: 
    # wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz -O /opt/harbor-online-installer-v1.6.2.tgz

解压安装包:
    # cd /opt/ && tar xf harbor-online-installer-v1.6.2.tgz

2. harbor.cnf 配置文件常用字段解释

主机名或者IP地址:
    hostname = hub.itomey.com
使用的传输协议,可指定 http 或 https:
    ui_url_protocol = https
最大工作进程: 
    max_job_workers = 10
SSL 证书:
    ssl_cert = /data/cert/hub.itomey.com.crt
SSL 私钥:
    ssl_cert_key = /data/cert/hub.itomey.com.key
发件服务器:
    email_server = smtp.mydomain.com
发件服务器端口:
    email_server_port = 25
发件人用户名:
    email_username = sample_admin@mydomain.com
发件人密码:
    email_password = abc
收件人:
    email_from = admin <sample_admin@mydomain.com>
是否启用ssl加密 可选 true or false:
    email_ssl = false
管理员密码:
    harbor_admin_password = Harbor12345

3. 安装 harbor

# 进入源文件目录:
    cd /opt/harbor/

# 执行 install.sh 开始安装
    ./install.sh

# 备注:
    . 如果有配置证书请将证书文件放置相应目录。
    . 启用ssl的话 hostname 必须为域名。

4. 测试是否能访问

使用hostname 访问 Harbor:
        https://hub.itomey.com/

5. 仓库命令使用

登录远程仓库:
    docker login https://hub.itomey.com/ -u ${Username} -p ${Password}

上传镜像至远程仓库:
    1. 先将镜像打个标签 我以nginx官方镜像为例:
        docker tag nginx:latest hub.itomey.com/library/nginx:latest
    2. 推送至远程仓库:
        docker push hub.itomey.com/library/nginx:latest

下载远程仓库镜像 (如果不是公开的需要登录才能下载):
        docker pull hub.itomey.com/library/nginx:latest

6. 常见问题

1. 如果是使用自签名证书或者未配置证书访问需要在docker启动的时候添加 --insecure-registry=x.x.x.x:
    vim /usr/lib/systemd/system/docker.service
    在 ExecStart=/usr/bin/dockerd 后面加上 --insecure-registry=x.x.x.x

    或者执行

    cat > /etc/docker/daemon.json <<EOF
    {
        "insecure-registries":["x.x.x.x:xxxx"]
    }
    EOF

    配置完成后 
        1. 重载 daemon
            systemctl daemon-reload
        2. 重启 docker 服务
            systemctl restart docker