سؤال كيفية إزالة علامة صورة في Docker دون إزالة الصورة نفسها؟


لنفترض أنني أريد وضع علامة على صورة جهاز Docker وإجراء خطأ مطبعي. كيف أزيل العلامة دون إزالة الصورة نفسها؟ لا تذكر صفحات manage أو Docker الوثائق إزالة العلامات.

docker tag 0e5574283393 my-imaj
docker tag 0e5574283393 my-image
# docker untag my-imaj # There is no "docker untag"!

95
2017-07-03 12:10


الأصل


بالنسبة لأولئك الذين يرغبون في untag <none>الصور الموسومة مثل foo/bar:<none>: استعمال docker images --digests و docker rmi foo/bar@<digest> كما هو موضح في success.docker.com/KBase/... - Janaka Bandara


الأجوبة:


إذا تم وضع علامة على صورتك بأكثر من علامة واحدة ، فيمكنك ذلك docker rmi سيزيل العلامة ، وليس الصورة.

لذلك في المثال الخاص بك ...

# docker rmi my-imaj

... سيزيل هذه العلامة ويترك الصورة موجودة مع العلامة الصحيحة الأخرى.


135
2017-07-03 12:42



شكر. أتمنى أن يذكروا هذا في الوثائق: - / - Mihai
goddamnit ... كيف يمكنني إزالة الصورة عن طريق العلامة؟ :) - Alexander Mills
إذا كانت العلامة التي أزيلها هي العلامة الأخيرة ، فستتم إزالة الصورة. لذا أتساءل ما هو الجواب على السؤال في الموضوع؟ كيف أقوم بإزالة العلامة والاحتفاظ بالصورة مخزنة مؤقتًا؟ - kub1x
السيناريو الخاص بي هو صورة واحدة بعلامة: 1) أزل العلامة من الصورة ، لكن احتفظ بالصورة المخبأة ، بدون علامات. 2) تشغيل docker build مع نفس العلامة ، ولكن ربما مختلفة Dockerfile. 3 أ) إذا كان Dockerfile لم تتغير ، تم وضع علامة على الصورة المخزنة مؤقتًا باستخدام نفس العلامة. 3 ب) إذا كان Dockerfile لم تتغير ، يتم وضع علامة على الصورة الجديدة مع العلامة الأصلية وستتم إزالة الصورة القديمة باستخدام docker image prune. - kub1x
والجواب كالعادة استعمال --helpلا تكن كسولًا للقراءة. docker image remove --no-prune.. في حال شخص مهتم. - kub1x


يركض docker rmi REPOSITORY:TAG لإزالة العلامة.

ال REPOSITORY و TAG القيم تأتي من docker images انتاج.

فمثلا

$ docker rmi my-image:0e5574283393
Untagged: my-image:0e5574283393

12
2017-07-03 12:35



blog.tmtk.net/2013/09/16/how_to_remove_tag_on_docker.html. هذا قد يوفر لك المزيد من المساعدة - ashishjain


بدءا من ريبو فارغ ، قم باستيراد صورة بكتابة:

#docker run hello-world

تشغيل docker images أمر لسرد الصور. يجب أن تبدو النتيجة كما يلي:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

الآن دعونا إنشاء علامة صورة تسمى V1 عن طريق تشغيل docker tag أمر:

#docker tag hello-world:latest hello-world:v1

إذا قمنا بتشغيل docker images الأمر سنرى علامتنا الجديدة مثل:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB
hello-world         v1          7bc42cc48a84      4 weeks ago       316MB

لحذف علامة محددة (للإجابة على السؤال الأصلي) ، قم بتشغيل ritter docker hello-world:v1 أين V1 هو اسم العلامة. سيبدو الإخراج كالتالي:

#docker rmi hello-world:v1
Untagged: hello-world:v1

تشغيل docker images أمر لسرد الصور. لاحظ أنه قد تمت إزالة علامة الصورة:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

4
2018-05-12 16:01



النهج الأقل غموضا على الرغم من 3 سنوات في وقت لاحق. +1 - bvj


ضع علامة على صورة أخرى تحمل اسم العلامة وبعدها ستتم إزالة علامتك من صورتك الحالية.


0
2017-10-05 15:35



مرحبًا بك في ServerFault! يرجى توضيح أو إضافة بعض الخطوات على سبيل المثال القيادة. تحقق من الدليل هنا: serverfault.com/help/how-to-answer - Cory Knutson