美文网首页程序员Docker容器Awesome Docker
基于cesanta/docker_auth认证的docker r

基于cesanta/docker_auth认证的docker r

作者: stepyu | 来源:发表于2017-07-28 17:03 被阅读183次
    说明

    registry v1 没有提供认证,鉴权的功能,需要自己通过类似nginx的反向代理来做简单的认证鉴权
    registry v2 提供了认证、鉴权的接口,但是需要自己实现认证鉴权的功能,或者是对接第三方的认证鉴权
    鉴于此,对接第三方的认证鉴权是比较合适的选择,而业界使用比较多的registry认证鉴权是cesanta/docker_auth
    现在基于docker_auth来搭建docker registry

    • 二进制形式安装
    1. 下载编译registry
        git clone https://github.com/docker/distribution.git
        cd  distribution/cmd/registry
        go build
    
    1. 编辑配置文件
    cp sample.yml conf.yml
    

    配置文件如下

    version: 0.1
    log:
      fields:
        service: registry
      level: debug
    storage:
      cache:
        blobdescriptor: inmemory
      filesystem:
        rootdirectory: /var/lib/registry
    http:
      addr: :5000
      headers:
        X-Content-Type-Options: [nosniff]
      tls:
        certificate: /path/to/registry/registry.crt
        key: /path/to/registry/registry.key
    auth:
      token:
        realm: "https://docker_auth.ip:5001/auth"
        service: "Docker registry"
        issuer: "Acme auth server"
        rootcertbundle: /path/to/docker_auth/server-cert.pem
    
    • 注意:证书要提前规划化好
    • http 模块的证书,是需要放到docker deamon 配置的信任证书的地方,一般是/etc/docker/cert.d/registry_xx_dome/registry.crt 这样在执行docker login等命令是,就可以建立tls连接了
    • auth token 处的证书,是为了registryauth建立tls连接用的
    • 由于docker deamonregistry交互式,registry会把auth地址返回回来,让docker deamon去申请授权,所以docker deamon 会直接与auth进行交互,而建立tls连接时,需要认证签名auth证书的证书,
      此时需要把,centos环境下,需要把注意是,该证书的签发证书放到/etc/pki/ca-trust/source/anchors/
      然后执行
    update-ca-trust
    systemctl restart docker
    
    • heath 模块配置去掉,负责,docker deamonregistry交互,会出发registry进行heath check导致失败
    • log 日志级别设置成debug会打印比较详尽的日志
    1. 启动registry
    nohup ./registry serve config.yml &
    
    1. 下载编译docker_auth
    git clone https://github.com/cesanta/docker_auth.git
    cd auth_server
    govendor sync
    #添加两个常量到main.go中
    go build
    

    添加的两个常量是

    const (
      Version = "xx"
      BuildId = "xx"
    )
    
    1. docker_auth 配置

    注意证书配对

    1. 启动 docker_auth
    nohup ./auth_server ../examples/simple.yml &
    

    7.测试略

    相关文章

      网友评论

        本文标题:基于cesanta/docker_auth认证的docker r

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