docker registry v2 api

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker registry v2 api相关的知识,希望对你有一定的参考价值。

参考技术A 本篇总结docker registry v2 api描述和使用 docker-registry v2

镜像由一个json清单和层叠文件组成,pull镜像的过程就是检索这两个组件的过程。拉去镜像的第一步就是获取清单,清单由下面几个字段组成: registry:5000/v2/redis/manifests/latest(获取redis:latest清单文件)

推送镜像和拉取镜像过程相反,先推各个层到registry仓库,然后上传清单.

<Layer Binary Data>

6.待更新

docker-registry构建私有的镜像仓库

docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。

1. 安装运行docker-registry

可以通过获取官方registry镜像来运行。默认情况下,仓库会被创建在容器的/var/lib/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。

运行命令
docker run --name registry -d
-p 5000:5000 --restart=always
-v /opt/data/registry:/var/lib/registry
registry

命令解释
--name registry:表示容器运行时的名字为registry
-d:表示后台运行
-p 5000:5000:表示将宿主机的5000端口映射到容器的5000端口
-v /opt/data/registry:/var/lib/registry:表示宿主机/opt/data/registry目录映射到容器/var/lib/registry的目录

 

2. 将本地一个镜像上传到私有仓库

1) 将任意一个镜像重命名, 以本地mynginx镜像举例如下:
docker tag mynginx:3.0 127.0.0.1:5000/mynginx:1.0

2) 查看是否存在重命名后的镜像
docker images

3) 将重命名后的镜像上传到私有仓库
docker push 127.0.0.1:5000/mynginx:1.0

3. 查看镜像是否成功上传到私有仓库

命令
curl 127.0.0.1:5000/v2/_catalog
结果
{"repositories":["mynginx"]}

返回如上结果则表明成功,反之失败。

 

4. 配置允许局域网内其他机器推送镜像

在/etc/docker/daemon.json中写入如下内容(如果文件不存在则新建该文件)

{
镜像加速配置
"registry-mirror":["https://registry.docker-cn.com"],
配置允许局域网内其他机器推送镜像
"insecure-registries":["192.168.199.241:5000"]
}

其中192.168.199.241是你安装私有仓库机器的局域网地址。




























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

docker pull / docker login 报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x509

docker pull / docker login 报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x509

docker pull / docker login 报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x509

docker拉取镜像时报错:docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp:

docker报错Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate has expi

如何使用 Apache 和 CA 证书配置 Docker Registry V2?