docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)

笔者写这篇说明,确实是因为在学习过程参考了太多的笔者笔记,很多误区以及不明确的地方。现在整理如下,希望节约大家学习过程的时间。

重点:必须要建立opt/registry目录 ,以及在 registry 目录下建立配置文件 config.yml 文件(后面细节,config具体内容网上都有)

首先,建立私人仓库,完全一样,直接从远程仓库 docker pull registry(registry是我们用来搭建私有仓库的工具);pull 下来之后可以 用docker images 查询,结果如下图:

docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第1张图片

完成registry的pull后,需要预先完成两件事(我的系统是Ubuntu18.04):第一在,root权限下,在opt/目录下建立,registry目录,以及registry目录下建立配置文件:

在这里插入图片描述
在这里插入图片描述
config内部配置代码,网上都有,这里就贴上去了

(以上工作都是为了最终可以执行私有仓库内部镜像文件的删除操作)
完成上述工作后,我们利用registry镜像文件创立一个name为registry的容器,具体操作如下:

docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第2张图片
建立registry容器的过程中,有两个重点:第一由于默认情况下,会将建立的仓库存放在registry容器内/var/lib/registry目录下,通过-v 操作将其挂载到本地目录:/opt/registry(具体操作上图);
同时建立的配置文件config.yml 也需要和 容器内部/etc/docker/registry/config.yml 进行挂载(具体操作上图)。
相关operation解释:-d(后台运行) -p (端口映射) -v 挂载本地目录 --name 建立容器名字

提示:一般默认端口是本机端口:127.0.0.1:5000/ 也可以使用 IPV4/6 的IP地址192.x.x.x:5000

上述操作建立registry 容器后,容器是直接启动后台运行的可以通过,docker ps 查看正在运行的容器详情(docker ps -a 查看所有容器详情)

完成上述操作后,我们开始测试:
第一步:修改本地仓库中需要上传到私有仓库的镜像文件的tag标签,命令docker tag:

根据已有的本地仓库中的镜像文件,利用docker tag修改上传(具体如下):
在这里插入图片描述
提示:镜像名一定要包含 仓库地址

修改完成后可以在本地仓库镜像中查看 刚刚 tag修改之后的镜像:
(PS:修改tag 只是为同一个镜像文件建立的不同的标签,image ID 是不变的)

docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第3张图片

第二步:上传修改过tag的镜像到仓库,命令docker push:

docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第4张图片
上传完成后,可以通过 curl 工具来查询上传的结果(eg: curl 127.0.0.1:5000/v2/_catalog eg: curl IP:PORT/v2/镜像名/tags/list)

(上传完成后,注意摘要数据:digest ,这个后面会用于删除私有仓库中的文件。其来源有三个途经:

1,查看本地仓库中上传镜像(这里是127.0.0.1:5000/centostest 和 ubuntu)的详细信息,命令 docker images --digests
2,上传私有仓库完成后会显示,如上图中第4行所示
3,命令查询:curl --header “Accept: application/vnd.docker.distribution.manifest.v2+json” -I -X 127.0.0.1:5000/v2/镜像名/manifests/tag信息)

第三步:获取digest信息后可以进行,私有仓库镜像的删除操作(具体如下):

docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第5张图片
验证,查询私有仓库的镜像;查询删除的私有仓库中镜像ubuntu,此时显示其tags:为null 表示删除成功。
在这里插入图片描述
PS:但此时删除成功只是删除了元数据,并没有释放硬盘内存

第四步,进入容器操作界面 :

在这里插入图片描述
切换到/etc/docker/registry 目录下(此时可以查看之前挂在的config文件,满足内心疑惑)
docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第6张图片
读取当前registry目录的内存大下(为后面释放硬盘后进行对比):
在这里插入图片描述
执行垃圾回收:操作 registry garbage-collect /etc/docker/registry/config.yml ,然后在此查询当前数据大小:du -sch 可以发现内存变小,此时完成了删除操作。
docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +)_第7张图片

你可能感兴趣的:(docker 私有仓库建立;镜像上传下载(正常操作,不展示push pull)、私有仓库镜像删除管理(精炼 ubuntu18.04 v2.x +))