搭建docker registry私有镜像仓库

主要参考了https://blog.tfm.ro/setup-and-run-a-standalone-private-docker-registry-v2/https://www.cnblogs.com/lin1/p/6207348.html

一、安装docker-distribution

yum install -y docker-distribution

安装完成后,启动服务:

systemctl enable docker-distribution.service
systemctl start docker-distribution.service

二、配置config.yaml

在/etc/docker-distribution/registry目录下编辑config.yaml文件如下:

version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry  #可更改
http:
    addr: [仓库运行的IP地址]:[仓库运行的端口,可设为5000]

三、修改daemon.json

在/etc/docker目录下编辑daemon.json文件,在大括号里增加一行:

"insecure-registries": ["仓库IP:仓库端口"],

随后重启docker:

systemctl restart docker

这样就完成了私有仓库的搭建。

四、测试上传

用docker images查看已下载的镜像,选择一个,例如nginx,打上标签:

docker tag [nginx镜像的ID] [仓库IP]:[仓库端口]/nginx

之后,用docker push命令将打上标签后的镜像上传至私有仓库:

docker push [仓库IP]:[仓库端口]/nginx

看到类似于下面这样的提示后,说明上传成功:

4258832b2570: Pushed 
683a28d1d7fd: Pushed 
d626a8ad97a1: Pushed 
latest: digest: sha256:b3cd8d196926586f70a060b1b61a7c34dd716effe0daf5cf68419ec0bc21ab3d size: 948

五、测试查询

Docker registry v2的API与v1差异非常大。例如,用下面的命令查看已上传的镜像:

curl -X GET http://仓库IP:仓库端口/v2/_catalog

应该能够返回:

{"repositories":["nginx"]}

其余的API可以从官方文档上查到https://docs.docker.com/registry/spec/api/

原文地址:https://www.cnblogs.com/00986014w/p/9869343.html