• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    docker registry私服搭建的方法

    目前为止,docker官方的registry镜像分为两个版本,v2和v2以前的版本,我管它叫v1,v1使用python编写的,之后的v2用的go语言,而且它们的API也不一样,本文将分别搭建基于SSL和登录认证的以上两个版本的docker私服。

    registry(v2)

    搭建环境:172.16.71.52 (contos7,docker1.8)

    首先下载镜像

    docker pull resigtry:2

    创建证书

    mkdir -p certs && openssl req \
    
     -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
    
     -x509 -days 365 -out certs/domain.crt

    复制domain.crt到指定目录,172.16.71.52.xip.io为私有仓库所在服务器的域名,5000为registry的端口号

    cp /certs/domain.crt /etc/docker/certs.d/172.16.71.52.xip.io:5000/ca.crt

    建立登录认证

    mkdir auth
    docker run --entrypoint htpasswd registry:2 -Bbn 你的用户名 你的密码 > auth/htpasswd

    重启docker

    systemctl restart docker

    run起来

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

    先登录,再使用

     docker login 172.16.71.52.xip.io:5000
    
     docker tag redis 172.16.71.52.xip.io:5000/redis
    
     docker push 172.16.71.52.xip.io:5000/redis
    

    检查下,image是否进入了我们搭建的私有仓库

    # 找到外部挂载的目录
    docker inspect --format {{'json .Mounts'}} registry
    
    # push进来的image都安静的躺在这里
    cd /tmp/data/docker/registry/v2/repositories
    

    以下是注意事项:

    1.创建认证证书时common name应该用registry所在机器的域名,本人用IP测试没有成功。

    2.docker run之前确保5000端口没有被占用,启动成功以后用docker logs看下有没有报错

    3.push和pull之前要docker login一下

    4.想要通过安全认证记得把生成的 domain.crt 复制到/etc/docker/certs.d/172.16.71.52.xip.io:5000/ca.crt,其中172.16.71.52.xip.io为私服的域名,5000为registry的对外端口

    5.v2的api变了,访问v1/search会报错404 not found,可以通过/v2/_catalog查看私有仓库的目录,v2的aip参见这里

    参考

    https://docs.docker.com/registry/deploying/ 
    https://docs.docker.com/engine/reference/commandline/inspect/
    https://docs.docker.com/registry/spec/api/

    registry(V1)

    V1版本的registry搭建起来比较费劲(也有可能我没有找到优雅的方法),在网上找了一篇用nginx做SSL和登录认证的博文,感谢博主,可移步这里查看(亲测可用)

    搭建docker内网私服(docker-registry with nginx&ssl on centos)

    因为版本原因(docker1.8),在ssl认证上还需要把生成的根证书copy到docker指定目录(如搭建V2时描述的)

    cp /etc/pki/CA/cacert.pem /etc/docker/certs.d/172.16.71.43.xip.io:5000/ca.crt 

    注意在其他主机访问私服时也要做以上操作。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:搭建docker内网私服的方法(docker-registry with nginx&ssl on centos)
    下一篇:Docker之开启远程访问的实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    docker registry私服搭建的方法 docker,registry,私服,搭建,