企业级私有Docker仓库Harbor搭建

企业级私有Docker仓库Harbor搭建

根据 Harbor官网 整理

1、请确认安装了Docker1.6以上版本并配置好Docker镜像源加速器

使用默认源几乎无法完成,以下为Docker1.10的Docker镜像源加速器配置示例

ExecStart=/usr/bin/dockerd-current \
–registry-mirror=https://docker.mirrors.ustc.edu.cn

2、下载安装好docker-compose1.6以上版本

详见 docker-compose官网地址

    curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

3、从官网下载在线安装包:harbor-online-installer-0.5.0.tgz

离线安装包方式试了很多次,几乎无法下载

4、解压安装包

    tar -zxvf harbor-online-installer-0.5.0.tgz

5、配置https方式访问harbor

执行以下生成证书脚本(需要输入宿主机IP)

    #!/bin/bash
    set -e
    read -p "Please input IP domain: " IP

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt<<EOF
    CN
    BJ
    BJ
    H3C
    CLOUD
    ${IP}
    zhang.xiangui@h3c.com
    EOF

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout ${IP}.key -out ${IP}.csr<<EOF
    CN
    BJ
    BJ
    H3C
    CLOUD
    zhangxiangui
    zhang.xiangui@h3c.com
    Harbor12345
    h3c
    EOF

    echo subjectAltName = IP:${IP} > extfile.cnf

    openssl x509 -req -days 365 -in ${IP}.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out ${IP}.crt

    mkdir -p /etc/docker/certs.d/${IP}
    cp ca.crt /etc/docker/certs.d/${IP}/

    mkdir -p /root/cert/
    cp ${IP}.crt ${IP}.key /root/cert/

    cp ${IP}.crt /etc/pki/ca-trust/source/anchors/
    update-ca-trust

    echo "Finish!!"

执行完以上脚本后在脚本的同级目录下会产生类似以下文件(123.56.9.74会替换成你的IP):

    123.56.9.74.crt  123.56.9.74.key  ca.crt  ca.srl
    123.56.9.74.csr  ca.key  extfile.cnf

配置harbor.cfg

    ...
    hostname = 123.56.9.74 (请配置成你的IP)
    ...
    ui_url_protocol = https
    ...
    harbor_admin_password = Harbor12345(请配置管理员登录密码)
    ...
    ssl_cert = /root/cert/123.56.9.74.crt (替换你的IP即可)
    ssl_cert_key = /root/cert/123.56.9.74.key(替换你的IP即可)
    ...

5、执行安装程序

    ./install

6、客户端登录Harbor并推送镜像

1、新建/etc/docker/certs.d/客户端IP/目录,将之前脚本产生的ca.crt证书拷贝到其下

2、登录并推送:

    docker login -u admin -p Harbor12345 123.56.9.74
    docker tag library/registry:2.5.0 123.56.9.74/library/registry:2.5.0
    docker push 123.56.9.74/library/registry:2.5.0

注意事项

1、生成证书的脚本中的 zhangxiangui 除了不能使用${IP}外,其余均可使用。

2、配置http访问方式的话,需要在docker服务中添加 --insecure-registry=123.56.9.74 并重启Docker服务才能推送和下载镜像。

猜你喜欢

转载自blog.csdn.net/zhangxiangui40542/article/details/70473670