Docker Registry

介绍:
  Registry用于保存docker镜像,包括镜像的层次结构和元数据
  用户可自建Registry,也可使用官方的Docker Hub

分类:

  • Sponsor Registry: 第三方的registry,供客户和Docker社区使用
  • Mirror Registry: 第三方的registry,只让客户使用
  • Vendor Registry: 由发布Docker镜像的供应商提供的registry
  • Private Registry: 通过设有防火墙和额外的安全层的私有实体提供的

安装docker-resitry:

~]# yum -y install docker-registry

查看docker-registry安装后各目录:

~]# rpm -ql docker-registry
/etc/docker-distribution/registry/config.yml                     // registry的配置文件
/usr/bin/registry                             // registry命令程序所在目录
/usr/lib/systemd/system/docker-distribution.service
/usr/share/doc/docker-distribution-2.6.2
/usr/share/doc/docker-distribution-2.6.2/AUTHORS
/usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md
/usr/share/doc/docker-distribution-2.6.2/LICENSE
/usr/share/doc/docker-distribution-2.6.2/MAINTAINERS
/usr/share/doc/docker-distribution-2.6.2/README.md
/var/lib/registry                             // 镜像所存位置

查看docker-registry的配置文件:

~]# cat /etc/docker-distribution/registy/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory              // 缓存在内存中
    filesystem:
        rootdirectory: /var/lib/registry  // 数据存储路径
http:
    addr: :5000                        // 监听端口

启动服务:

~]# systemctl start docker-distribution
~]# ss -nlt | grep 5000
LISTEN     0      128         :::5000                    :::* 

推送镜像到registry:

~]# docker images
.....
myweb                v0.3-9              7d72ff5e7b03        2 hours ago         16MB
.....
~]# docker tag myweb:v0.3-9 hadoop2:5000/myweb:v0.3-9      // 要将tag改为registry服务器的hostname:port/tag
~]# docker push hadoop2:5000/myweb:v0.3-9 // 推送镜像到resistry,第一次会报错,因为客户端默认使用https协议
  Get https://hadoop2:5000/v2/: http: server gave HTTP response to HTTPS client
~]# vim /etc/docker/daemon.json

  {
    "registry-mirrors": ["https://l10nt4hq.mirror.aliyuncs.com"],   // 镜像下载加速
    "bip": "10.0.0.1/16",                             // docker桥的地址,新建容器时会依次分配地址
    "hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"],     // 允许对外监听
    "insecure-registries": ["hadoop2:5000"]            // 添加此行
  }

~]# systemctl restart docker     // 重启服务生效

~]# docker push hadoop2:5000/myweb:v0.3-9  // 再次推送,成功

~]# ll /var/lib/registry     // 会生成一个docker目录,数据都在docker目录下

docker

原文地址:https://www.cnblogs.com/k-free-bolg/p/11052470.html