• Docker registry


    公司自己的项目肯定少不了搭建私有的docker镜像管理平台,这里记录一下registry搭建过程。

    一、简单搭建

    1、docker 运行 registry

    mkdir -p /data/registry #创建文件夹

    docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --restart=always --name registry registry:2

    2、上传

    docker pull nginx #拉取nginx
    
    docker tag nginx localhost:5000/nginx:v1.0 #标记nginx
    
    docker push localhost:5000/nginx:v1.0 #发布到Registry中

    3、查看Registry中的镜像

    curl http://localhost:5000/v2/_catalog

     4、拉取和使用

    docker images #查询docker中所有镜像
    
    docker rmi localhost:5000/nginx:v1.0 nginx #删除镜像
    
    docker pull localhost:5000/nginx:v1.0 #拉取刚刚上传的镜像
    
    docker run -d --name myNginx -p 8081:80 localhost:5000/nginx:v1.0 #运行镜像
    
    curl http://localhost:8081 #访问nginx

     备注:这个半成品“完成了”,如果其它机器需要上传docker会提示https,也可以通过配置docker方式解决,下面来看一下配置SSL

    二、配置SSL

    1、通过nginx配置https然后映射registry

    2、配置registry证书

    这里有两种方式都可以达到相同的效果,我搭建的是第一种

    准备工作:需要拥有一个域名、https证书(我这里是用的阿里云的免费证书)

    配置nginx:

    server {
            #https
            listen       443;
            server_name  registry.text.top;
            ssl on;
            ssl_certificate   /data/cer/registry.text.top.pem;
            ssl_certificate_key  /data/cer/registry.text.top.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            location / {
                proxy_pass http://127.0.0.1:5000;
            }
    }

    阿里云文档也有详细介绍

    提交应用:

    docker tag nginx registry.text.top/nginx:v1.0 #标记nginx
    
    docker push registry.text.top/nginx:v1.0 #发布到Registry中

    备注:现在已经正常使用了,如果不想任何人都可以上传下载镜像,还需要配置registry验证

    三、配置registry验证

    我这里采用比较简单的htpasswd方式

    yum install httpd-tools #安装htpasswd

    htpasswd -Bbn admin 123456 > /data/auth/passwd #生成秘钥

    查看passwd内容

    cat /data/auth/passwd

     配置启动registry容器

    docker run -d -p 5000:5000 
    -v /data/registry:/var/lib/registry 
    -v /data/auth:/auth 
    -e REGISTRY_AUTH=htpasswd
    -e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm 
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd 
    --restart=always --name registry registry:2

    现在再提交镜像,就会提示:no basic auth credentials

    docker登录Registry

    docker login registry.text.top

    登出

    docker logout registry.text.top

    四、Registry 图形化管理界面

    github上面有很多开源的ui管理界面,可以根据自己喜欢搭建,这里挑一个出来配置

    地址:https://github.com/jc21/docker-registry-ui

    docker run -d -p 5001:80 --name registry-ui 
    -e REGISTRY_HOST=registry.text.top 
    -e REGISTRY_SSL=true 
    -e REGISTRY_DOMAIN=registry.text.top 
    -e REGISTRY_USER=admin 
    -e REGISTRY_PASS=123456 
    jc21/registry-ui

    界面

  • 相关阅读:
    关于web测试收集
    Webdriver初探
    Java学习笔记 11/15:一个简单的JAVA例子
    持续集成环境搭建总结
    启动速度
    excel中用到的函数
    jmerter使用
    接口测试
    内存泄漏场景
    手机连接电脑那些事
  • 原文地址:https://www.cnblogs.com/fanxp/p/11997448.html
Copyright © 2020-2023  润新知