• Docker 私有仓库建立(加密和用户验证)


    (一)生成证书
    1、mkdir /certs
    2、cd /certs

    3、生成自签名证书

    sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout registry.key -out registry.crt
    

    录入证书信息:

    CN
    Guangdong
    shenzhen
    albb
    Dev
    10.1.2.3
    123456@qq.com

    4、添加centos系统对自签名证书的信任
    cat ./registry.crt >> /etc/pki/tls/certs/ca-bundle.crt
    查看证书内容
    openssl x509 -noout -text -in server.crt

    5、允许docker私有仓库支持ip地址方式的https访问


    6、修改openssl.cnf,在Redhat7或者Centos系统中,文件所在位置是/etc/pki/tls/openssl.cnf。在其中的[ v3_ca]部分,添加subjectAltName选项:

    [ v3_ca ]
    subjectAltName= IP:10.1.2.3
    

    (二)新建docker私有仓库的用户abc
    https://blog.csdn.net/shida_csdn/article/details/78435971#commentBox

    (三)新建docker:用户验证+https传输

    docker run -d -p 443:443 --restart=always --name=registry-https-abc 
    -v /opt/registry-var/config/:/etc/docker/registry/ 
    -v /opt/registry-var/auth/:/auth/ 
    -e "REGISTRY_AUTH=htpasswd" 
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd 
    -v /opt/registry-var/:/var/lib/registry/ 
    registry
    

      

    (四)测试登录
    浏览器访问:
    https://10.1.2.3:443/v2 如果弹出提示用户名和密码的输入,证明搭建成功

    ================================================

    以下方法不推荐,仅作参考。

    ================================================

    1、创建密码文件(用于docker私有仓库的用户登录认证)

     参考:

    搭建docker私有仓库2(带用户验证)

    https://blog.csdn.net/shida_csdn/article/details/78435971#commentBox

     

    2、创建证书文件(用于https的加密传输)

     参考:

    搭建docker私有仓库(https)

    https://www.cnblogs.com/andy9468/p/10736214.html

     

    3、创建私有仓库容器(加密和用户验证)

    docker run -d -p 5000:5000 --restart=always --name registry-https5000account
    -v /opt/registry-var/auth/:/auth/
    -e "REGISTRY_AUTH=htpasswd"
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
    -v /certs:/certs
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
    -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key
    registry

    以这句为准:

    docker run -d -p 443:443 --restart=always  --name=registry-https-abc 
      -v /opt/registry-var/config/:/etc/docker/registry/ 
      -v /opt/registry-var/auth/:/auth/ 
      -e "REGISTRY_AUTH=htpasswd" 
      -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
      -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd 
      -v /opt/registry-var/:/var/lib/registry/ 
      -v /certs:/certs  
      -e REGISTRY_HTTP_ADDR=0.0.0.0:443 
      -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt 
      -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key 
    registry
    

    说明:

    运行registry并指定参数
    包括了用户密码文件和CA书位置。
    --restart=always 始终自动重启

    --name registry-https5000account   指定容器的别名

    -v /opt/registry-var/auth/:/auth/   指定密码文件位置

    -v /certs:/certs   指定证书位置

    4、验证服务:

    方法一:docker  ps -a

    方法二:docker login https://你的ip:5000/

    参考:https://www.jianshu.com/p/0f8f86f5a961

     

  • 相关阅读:
    C# Workbook读取Execl数据
    C# Task
    Json/XML序列化和反序列化
    C# RSA加解密和MD5加密
    SqlServer基本操作
    SQL Server基础优化
    Http请求基本方法
    ASP.NET MVC基础知识
    简单的五险一金计算器
    PHP基础入门(三)
  • 原文地址:https://www.cnblogs.com/andy9468/p/10737228.html
Copyright © 2020-2023  润新知