docker 私有仓库搭建

说明:虚拟机cnetos7,选择2台虚拟机(192.168.25.131,192.168.25.132),一台也行。安装好docker,192.168.25.132作为搭建镜像仓库的虚机

  1. 在132机上下载registry镜像
docker pull registry
  1. 准备好启动registry的参数和文件准备

2.1 创建一个文件/data/config.yml,添加如下内容:
加了一行:storage:delete:enabled: true表示运行镜像删除,容器挂载后,会覆盖 docker仓库本身的config.yml文件

version: 0.1
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

2.2 创建目录/opt/data/registry,用来挂载上传的镜像,一方容器被删除,镜像丢失
2.3 在/etc/docker/daemon.json添加地址,不然push时,docker客户端会发送https请求,导致push失败,指定特定ip发送http请求

vim /etc/docker/daemon.json

daemon.json 里面的内容ip+端口

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

3 重启docker服务

systemctl daemon-reload  //没有这一步也生效
systemctl restart docker

4.启动 registry容器(–privileged=true)增加权限,不然push会失败

docker run -d -p 5000:5000  --privileged=true   -v /opt/data/registry:/var/lib/registry  -v /data/config.yml:/etc/docker/registry/config.yml  docker.io/registry

5 测试拉取镜像

docker pull centos:latest

5 将镜像打标签(不然无法push到指定仓库)

docker tag  docker.io/centos:latest 192.168.25:132:5000/my_centos:1.0

6 推到私有仓库

docker push  192.168.25:132:5000/my_centos:1.0

7 删除仓库镜像测试
7.1 在registry中搜索镜像列表

curl -X GET http://192.168.25.132:5000/v2/_catalog

7.2 查看当前镜像的tag

  curl http://192.168.25.132:5000/v2/my_centos/tags/list

7.3 获取sha256
curl --header “Accept:application/vnd.docker.distribution.manifest.v2+json” -I -XGET  http://镜像地址/v2/镜像名称/manifests/镜像版本

curl --header "Accept:application/vnd.docker.distribution.manifest.v2+json" -I -XGET http://192.168.25.132:5000/v2/my_centos/manifests/1.0

8 根据sha256删除仓库里面的镜像(只删除索引,实际内容没有删除)
curl -I -XDELETE <镜像仓库>/v2/<镜像名>/manifests/

curl -I -XDELETE 192.168.25.132:5000/v2/my_centos/manifests/sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a

9 进入镜像仓库所在容器,查看仓库大小,会发现大小没有变化(只删除了元镜像)

du  -chs  /var/lib/registry/

10 垃圾回收

registry garbage-collect /etc/docker/registry/config.yml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值