首先列出docker registry官方API的地址:Registry API,然后还有使用手册:Docker Registry。

Docker Registry使用:

1、开始一个registry:

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

如果需要配置文件的话,则加上配置文件挂载。(config详细信息)

docker run -d -p 5000:5000  \
--name registry --restart=always \
-v 'pwd'/registry:/var/lib/registry \
-v 'pwd'/config.yml:/etc/docker/registry/config.yml \
registry:2

2、配置daemon.json,/etc/docker/daemon.json增加一行,然后systemctl restart docker:

{"insecure-registries": ["127.0.0.1:5000"]
}

3、上传一个镜像

先要给本地镜像重新tag,例如下面的test是待上传的镜像,localhost:5000/my_test是tag之后的

docker image tag test localhost:5000/my_test

然后docker push localhost:5000/my_test。


Registry API使用

1、查看API是否可用:curl -I -X GET localhost:5000/v2/,返回200 OK代表可用。

2、查看所有镜像:curl -X GET localhost:5000/v2/_catalog

3、获取一个镜像的manifest:

curl -I -X GET localhost:5000/v2/<name>/manifests/<reference>

<name>代表镜像名,reference可以使用tag或digest。

4、查看一个镜像是否存在:

curl -I -X HEAD localhost:5000/v2/<name>/manifests/<reference>,会返回以下信息

200 OK
Content-Length: <length of manifest>
Docker-Content-Digest: <digest>

5、下载单个镜像层:

curl -X GET localhost:5000/v2/<name>/blobs/<digest>

6、删除一个镜像

curl -I -X DELETE localhost:5000/v2/<name>/manifests/<reference>,不过删除一个镜像需要加一个header,如下:

curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE localhost:5000/v2/<name>/manifests/<reference>.

同时还需要在配置中许可删除操作,修改配置文件,在storage下添加delete的许可

storage:delete:enabled: true

还有一些其他的,可以去看Registry API的文档


Registry存储细节

目录分为两层:blobs和repositories。

  • blobs:镜像所有内容的实际存储,包括了镜像层和镜像元信息manifest。
  • repositories是镜像元信息存储的地方,name代表仓库名称
    • 每一个仓库下面又分为_layers、_manifests两个部分
    • _layers负责记录该仓库引用了哪些镜像层文件
    • _manifests负责记录镜像的元信息
      • revisions包含了仓库下曾经上传过的所有版本的镜像元信息
      • tags包含了仓库中的所有标签
        • current记录了当前标签指向的镜像
        • index目录则记录了标签指向的历史镜像

docker registry详解相关推荐

  1. 图形化管理工具Portaniner安 以及 Docker镜像详解(三)

    文章目录 图形化管理工具Portaniner安装 Docker镜像详解 1 什么是镜像 2 Docker镜像加载原理 3 分层理解 提交镜像 常用容器部署 Nginx部署 图形化管理工具Portani ...

  2. 虚拟化技术之docker技术详解

    文章目录 虚拟化技术之docker技术详解 关于作者 作者介绍 前言 虚拟化技术概述及简介 一 .什么是虚拟化技术? 二.常见的虚拟化技术有哪些? 2.1 KVM 虚拟化技术概念 2.2 ESXI 虚 ...

  3. Docker全面详解(二)

    3. run运行流程图 4. 底层原理 4.1. Docker是怎么工作的 4.2. Docker为什么比VM快? 5. Docker的常用命令(重) 5.1. 帮助命令 5.2. 镜像命令(基础) ...

  4. Docker网络详解——原理篇

    前言 当你开始大规模使用Docker时,你会发现需要了解很多关于网络的知识.Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完 ...

  5. Docker入门详解

    Docker详解 文章目录 一.Docker简介 1.1 Docker发展史 1.2 Docker的优点 1.3 传统虚拟化与容器的区别 1.3 Docker结构 二.Docker底层技术 2.1 N ...

  6. Docker网络资源详解 ---(四种网络模式)

    文章目录 前言 一:Dcker网络资源详解 简单云平台生态环境图 普通单节点 桥接图 1.1:网络资源详解:Docker0网卡与四种网络模式 二 . Docker0网卡的解释 1. host模式 2. ...

  7. docker inspect 详解

    一.功能介绍 docker inspect 会以 json 格式得到 docker 镜像/容器的元数据. 如下,查看mysql镜像的完整元数据: docker inspect mysql:5.7 [{ ...

  8. docker pull 详解

    docker pull 用于从镜像仓库中拉取或更新指定镜像,用法如:docker pull centos ,默认是从 Docker Hub 中拉取镜像 在拉取镜像前,我们可以先配置 docker 加速 ...

  9. Docker 概念详解

    本文转自: https://zhuanlan.zhihu.com/p/38552635 阅读本文大概需要15分钟,通过阅读本文你将知道一下概念: 容器 什么是Docker? Docker思想.特点 D ...

最新文章

  1. Linux运行cat进程,linux下如何使用某个用户启动某个进程?
  2. 谷歌推出TFQ,一个可训练量子模型的机器学习框架
  3. 微信小程序 textarea 简易解决方案
  4. 盐城工学院计算机考研高吗,信息学院计算机班计玮考取中南大学研究生
  5. 分布式图处理系统同步异步执行模式
  6. Android中应用百度地图API开发地图APP实例-显示百度地图
  7. QML编程之旅 -- 事件处理
  8. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步
  9. 【托管服务qin】WEB网站压力测试教程详解
  10. 第十届数据技术嘉年华活动彩蛋!
  11. 开发一款高端大气上档次的android应用需要必备的知识——记于2013年末
  12. Day46:数据库引擎、索引、pymysql
  13. 对象取值操作Object.values()
  14. 新手玩荔枝派 f1c100s nano折腾笔记(四)
  15. 使用itext把图片转成pdf文件,图片来自本地路径或者文件上传,输出pdf存在本地或者远程minio
  16. 数据结构——十大排序算法
  17. CF Edu 53D Berland Fair 暴力,取模
  18. HDU 4417 Super Mario(离线 + 树状数组)
  19. 大数据之路系列之Linux命令(01)
  20. vue vue-seamless-scroll 无缝滚动依赖

热门文章

  1. 两个##,什么意思?
  2. git命令——将本地文件上传到远程厂库步骤
  3. 国地级市月度平均房价-含省市、时间、价格(更新至2021年7月)
  4. 全球公有云一哥AWS十年宕机故障大全
  5. 《J2EE项目开发》实验报告
  6. Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域
  7. OCR文字识别API助力企业提升工作效率
  8. 【转载】网络安全体系设计方法论
  9. [转贴]为了获得有尊严的生活,你必须在年轻时学会赚钱
  10. 用AI生成的一张美女老师图,大家一定要仔细的看她眼睛,是否发现了什么?