{"id":4917,"date":"2021-06-29T14:04:51","date_gmt":"2021-06-29T06:04:51","guid":{"rendered":"https:\/\/nj.transwarp.cn:8180\/?p=4917"},"modified":"2021-06-29T14:04:51","modified_gmt":"2021-06-29T06:04:51","slug":"%e5%a6%82%e4%bd%95%e5%88%a0%e9%99%a4docker%e5%92%8cregistry%e4%b8%8a%e7%9a%84image","status":"publish","type":"post","link":"https:\/\/kbwp.transwarp.cn\/?p=4917","title":{"rendered":"\u5982\u4f55\u5220\u9664docker\u548cregistry\u4e0a\u7684image"},"content":{"rendered":"<h3>\u6982\u8981\u8bf4\u660e<\/h3>\n<p>registry\u4e2d\u5b58\u50a8\u96c6\u7fa4\u7684\u6240\u6709images\uff0c\u6bcf\u4e2a\u8282\u70b9\u7684docker\u5728\u542f\u52a8\u5bb9\u5668\u65f6\u5019\u4f1apull\u5230\u672c\u5730\u673a\u5668\uff0c\u4e8c\u8005\u90fd\u4f1a\u5360\u7528\u78c1\u76d8\u7a7a\u95f4\u3002<\/p>\n<h3>\u8be6\u7ec6\u8bf4\u660e<\/h3>\n<hr \/>\n<p>\u96c6\u7fa4\u4e0a\u4f20\u4ea7\u54c1\u5305\u5230registry\u65f6\u5019\u4f1a\u5360\u7528\/var\/lib\/registry_data\u7684\u7a7a\u95f4\uff0c\u8fd9\u4e2a\u76ee\u5f55\u4e00\u822c\u4e0d\u4f1a\u5355\u72ec\u6302\u8f7d\uff0c\u4e0a\u4f20\u5927\u91cf\u4ea7\u54c1\u5305\u65f6\u5019\u4f1a\u5360\u7528\u5927\u91cf\u6839\u76ee\u5f55\u7684\u7a7a\u95f4\u3002<br \/>\ndocker\u542f\u52a8\u5bb9\u5668\u4f1a\u4eceregistry\u4e0apull images\u5230\u672c\u5730\u673a\u5668\uff0c\u4f1a\u5360\u7528\/var\/lib\/docker\u78c1\u76d8\u7a7a\u95f4\u3002<\/p>\n<h4>1\u3001\u5220\u9664docker\u4e0a\u7684image<\/h4>\n<pre><code class=\"language-shell\">docker rmi image\u540d\u5b57<\/code><\/pre>\n<h4>2\u3001\u5220\u9664registry\u4e0a\u7684image<\/h4>\n<pre><code class=\"language-shell\">#!\/bin\/bash\nregistry_ip=${registry\u6240\u5728\u673a\u5668\u7684ip}:5000\nregistry_id=$(docker ps | grep registry:${\u5b89\u88c5\u7684tos\u7684\u7248\u672c} | awk \u2018{print $1}\u2019)\nimages=(\n${image\u7684\u76ee\u5f55}\n)\nset -ex\nfor image in ${images[*]}\ndo\nimage_pro=$(echo $image | awk -F: \u2018{print $1}\u2019)\nimage_tag=$(echo $image | awk -F: \u2018{print $2}\u2019)\nsha_data=$(curl -k -v --silent -H \u201cAccept: application\/vnd.docker.distribution.manifest.v2+json\u201d -X GET\u00a0https:\/\/${registry_ip}\/v2\/${image_pro}\/manifests\/${image_tag} 2>&1 | grep Docker-Content-Digest | awk \u2018{print ($3)}\u2019)\nsha_data=$(echo $sha_data | tr -d \u2018\\r\u2019)\ncurl -k -v --silent -X DELETE\u00a0https:\/\/${registry_ip}\/v2\/${image_pro}\/manifests\/${sha_data}\ndone\ndocker exec -it ${registry_id} bin\/registry garbage-collect \/etc\/docker\/registry\/config.ym<\/code><\/pre>\n<p>\u590d\u5236\u4e0a\u9762\u7684\u7684\u5185\u5bb9\u5230delete.sh\u6587\u4ef6\u4e2d\uff0c\u6ce8\u610f\u4fee\u6539<br \/>\n(1). ${registry\u6240\u5728\u673a\u5668\u7684ip}\u4e3aregistry\u6240\u5728\u673a\u5668\u7684ip<br \/>\n(2). ${\u5b89\u88c5\u7684tos\u7684\u7248\u672c}\u4e3a\u5f53\u524d\u5b89\u88c5\u7684tos\u7684\u7248\u672c\uff0c\u4f8b\u5982transwarp-5.0.0-final<br \/>\n(3). ${image\u7684\u76ee\u5f55}\u4e3a\u8981\u5220\u9664\u7684image\u7684\u76ee\u5f55\u5230tag\u7684\u5168\u540d\uff0c\u4f8b\u5982transwarp\/inceptor:transwarp-5.0.0-final<br \/>\n\u5982\u679cimages\u662ftw-node1248:5000\/transwarp\/inceptor:transwarp-5.0.0-final\uff0c\u90a3\u4e48(1)${registry\u6240\u5728\u673a\u5668\u7684ip}=tw-node1248\uff1b(2)${image\u7684\u76ee\u5f55}\u4e3atranswarp\/inceptor:transwarp-5.0.0-final\u3002<br \/>\n\u7136\u540e\u6267\u884cbash +x delete.sh\u5373\u53ef\u5220\u9664\u3002\u770b\u5230\u4e0b\u56fe\u63d0\u793a\u4fe1\u606f\u8868\u793a\u5220\u9664\u6210\u529f\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2020\/12\/image-1609207969646.png\" alt=\"file\" \/><\/p>\n<p>\u5728registry\u9875\u9762(tos\u670d\u52a1\u7684registry\u89d2\u8272\u7684\u8fde\u63a5\u70b9\u8fdb\u53bb)\u786e\u8ba4image\u662f\u5426\u5220\u9664\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981\u8bf4\u660e registry\u4e2d\u5b58\u50a8\u96c6\u7fa4\u7684\u6240\u6709images\uff0c\u6bcf\u4e2a\u8282\u70b9\u7684docker\u5728\u542f\u52a8\u5bb9\u5668\u65f6\u5019\u4f1apull\u5230\u672c\u5730\u673a ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/kbwp.transwarp.cn\/?p=4917\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":70,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4917","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/4917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/users\/70"}],"replies":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4917"}],"version-history":[{"count":0,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/4917\/revisions"}],"wp:attachment":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}