Docker registry

Posted fanxp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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=passwd -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

界面

技术图片

以上是关于Docker registry的主要内容,如果未能解决你的问题,请参考以下文章

Docker安装私有仓库,用户认证(Registry)

基于Centos7安装Docker-registry2.0

docker registry的https错误解决

Docker——Registry 通过shell管理私有仓库镜像

Docker Registry使用:公有Docker Registry使用私有Docker Registry的搭建

Hello Docker——Docker Registry