美文网首页
docker私有仓库harbor

docker私有仓库harbor

作者: 王小杰at2019 | 来源:发表于2018-10-20 20:13 被阅读74次

    [toc]

    证书

    1. 生成自己的证书

    在线方式

    https://csr.chinassl.net/generator-csr.html
    

    本机方式

    #首先确保机器上安装了openssl和openssl-devel
    
    yum install -y openssl-devel openssl
    
    # 创建服务器私钥,命令会让你输入一个口令:
    openssl genrsa -des3 -out server.key 1024
    
    创建签名请求的证书(CSR):
    # openssl req -new -key server.key -out server.csr
     
    
    
    1. 签发证书
    #在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
     cp server.key server.key.org
     openssl rsa -in server.key.org -out server.key
    #最后标记证书使用上述私钥和CSR:
     openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
    
    
    1. 证书信任

    CentOS 7

    添加到信任链中,需要重新docker

    #转换格式
    
    openssl x509 -inform der -in  hub.g.cn.cer -out hub.g.cn.pem
    
    cat hub.g.cn.pem  >> /etc/pki/tls/certs/ca-bundle.crt
    
    

    harbor

    1. 下载
    wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz
    tar -xvf  harbor-offline-installer-v1.6.1.tgz
    
    1. 配置
      harbor.cfg
    
    #改成自己的
    hostname = hub.g.cn
    
    ui_url_protocol = https
    
    #off
    customize_crt = off
    
    #用自己的
    ssl_cert = /data/nginx/conf/certificate/hub/hub.g.cn.crt
    ssl_cert_key = /data/nginx/conf/certificate/hub/hub.g.cn.key
    
    
    1. 脚本说明
    #加载镜像
    install.sh
    
    #根据harbor.cfg初始化配置
    prepare
    
    #启动容器
    docker-compose up -d
    
    

    默认用户名密码admin/Harbor12345

    1. 添加用户,添加项目,添加用户到项目

    docker操作

    #登陆
    docker login -u wyj -p Wyj12345 hub.g.cn
    
    #修改标签
    docker tag 25068d1677ff hub.g.cn/gaiay/tomcat:jre7
    
    #push
    
    docker push hub.g.cn/gaiay/tomcat:jre7
    
    #pull
    
    docker pull hub.g.cn/gaiay/tomcat:jre7
    
    

    nginx 代理

    修改 docker-compose.yml 端口映射

    180:80
    1443:443
    
    server {
        server_name  hub.g.cn;
        listen 443 ssl ;
        ssl_certificate     /data/nginx/conf/certificate/hub/hub.g.cn.crt;
        ssl_certificate_key /data/nginx/conf/certificate/hub/hub.g.cn.key;
        ssl_session_timeout  20m;
        ssl_protocols  TLSv1  TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers EECDH+AES:EECDH+CHACHA20;
        add_header X-Frame-Options SAMEORIGIN;
    
    
    location / {
        #docker 代理一定要配置 max_body_size
        client_max_body_size 1000m;
        proxy_pass   https://192.168.0.180:1443;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Forwarded-Port $server_port;
        proxy_redirect off;
    
        }
    }
    
    
    

    遇到的坑

    用域名用自己证书,因为容器组合起来的,
    hostname = hub.g.cn
    ui_url_protocol = https
    必须是在容器内外都可以访问的,修改映射端口后,如果还使用nginx配置代理,那么harbor.cfg hotname还是用标准端口号就可以了

    相关文章

      网友评论

          本文标题:docker私有仓库harbor

          本文链接:https://www.haomeiwen.com/subject/bjnmzftx.html