如何查看私有仓库中有哪些镜像

2025-05-23 21:51:17
推荐回答(1个)
回答1:

将ubuntupush到私有registrydockerpushrd-server:5000/ubuntu如何将ubuntu的所有分支都镜像到自己的私有仓库?1.先打TAG,把需要的版本打上标签,然后进行推送语句大概是这个样子的:dockertageb601b8965b8rd-server:5000/ubuntu:raringdockertageb601b8965b8rd-server:5000/ubuntu:13.04dockertag9f676bd305a4rd-server:5000/ubuntu:saucydockertag9f676bd305a4rd-server:5000/ubuntu:13.10dockertag9cd978db300erd-server:5000/ubuntu:precisedockertag9cd978db300erd-server:5000/ubuntu:latestdockertag9cd978db300erd-server:5000/ubuntu:12.04dockertag9cc9ea5ea540rd-server:5000/ubuntu:luciddockertag9cc9ea5ea540rd-server:5000/ubuntu:10.04dockertag5ac751e8d623rd-server:5000/ubuntu:quantaldockertag5ac751e8d623rd-server:5000/ubuntu:12.10开始推送dockerpushrd-server:5000/ubuntu如果返回的内容的最后一行是下面这个样子的2014/03/1408:22:14push:}请反复执行,没错,不要怀疑,请循环一直反复执行下去dockerpullrd-server:5000/ubuntu直到不再出现push:}的字样不知道这是docker的BUG还是本身设计是这样的,需要反复多次push才能将完整的tag推送到privateregistry里,否则在客户端下载的时候总会提示某些image找不到,个人猜测可能是这么设计的,因为dockerimage比较大,而一个repo会有很多的块文件,每次push的时候只Push一个块,好了,猜测就道这,活还是得干,所以,写个脚本解决手工的问题吧。#!/bin/sh##Copyright(c)2014ZhengXujinxujinzheng@gmail.com#server="127.0.0.1:5000"index_repo_name="username/ubuntu"private_repo_name="ubuntu"echo"\n"echo"##."echo"######=="echo"########==="echo"/""""""""""""""""\___/==="echo"~~~{~~~~~~~~~~~~~~~~/===-~~~"echo"\______o__/"echo"\\__/"echo"\____\______/"echo"\n"idx=0is_continue=1dockerimages|grep-q"$server/$private_repo_name"if[[$?-ne0]];thendockerimages|grep$index_repo_name|awk-F""'{printf("dockertag%s%s/%s:%s\n",$3,"'$server'","'$private_repo_name'",$2)}'|bashfiwhile[$is_continue-eq1]dodockerpush$server/$private_repo_nameis_continue=$?letidx=$idx+1echo"$(tputsetaf1)continuepush,$idxtimespushed.$(tputsgr0)"done