ঝোলা ইমেজ কী এবং অব্যবহৃত চিত্র কী?


155

ডকার ইমেজ প্রুনের ডকার ডকুমেন্টেশনে -a পতাকা ব্যবহার করা সম্ভব

ঝাঁকুনিযুক্ত চিত্রগুলি নয়, সমস্ত অব্যবহৃত চিত্রগুলি সরান

এবং পরে

সমস্ত ঝুঁকিপূর্ণ চিত্রগুলি সরান। যদি -a নির্দিষ্ট করা থাকে তবে কোনও ধারক দ্বারা রেফারেন্সযুক্ত সমস্ত চিত্রও সরিয়ে ফেলবে।

কেউ আমাকে ব্যাখ্যা করতে পারেন যে ঝোলাযুক্ত চিত্রগুলি কী এবং ঝোলা এবং অব্যবহৃত চিত্রগুলির মধ্যে পার্থক্য কী?


ডকার চিত্র ছাঁটাই (-a ছাড়া) ঠিক একই কাজটি করে
হার্ম

এটি ব্যর্থ হয় যখন আপনি জেনকিনসে এটি ব্যবহার করেন, আমরা যদি ডকার চিত্রের ক্যাশে নির্ভর করি তবে আমরা উত্পাদনে ডকার ব্যাকআপ হারাব। pruneপ্রযোজনায় পুনরায় চাওয়া হয় না
জিন্না বালু

উত্তর:


153

অব্যবহৃত চিত্রটির অর্থ এটি কোনও ধারকটিতে বরাদ্দ বা ব্যবহার করা হয়নি। উদাহরণস্বরূপ, চলমান অবস্থায় docker ps -a- এটি আপনার বহির্গমন এবং বর্তমানে চলমান সমস্ত পাত্রে তালিকাবদ্ধ করবে list যে কোনও চিত্রের যে কোনও পাত্রে ব্যবহার করা হচ্ছে তা হ'ল "ব্যবহৃত চিত্র"।

অন্যদিকে, জটলা ইমেজটির অর্থ হ'ল আপনি চিত্রটির নতুন বিল্ড তৈরি করেছেন, তবে এটি কোনও নতুন নাম দেওয়া হয়নি। সুতরাং আপনার পুরানো চিত্রগুলি "ঝুঁকির চিত্র" হয়ে উঠেছে। সেই পুরানো চিত্রগুলি হ'ল <none>আপনি যখন চালনা করেন তখন নাম বাদ দেওয়া হয় এবং এর নামে প্রদর্শিত হয় docker images

চলমান অবস্থায় docker system prune -a, এটি অব্যবহৃত এবং জঞ্জাল উভয় চিত্র সরিয়ে ফেলবে। সুতরাং কোনও পাত্রে কোনও চিত্র ব্যবহার করা হচ্ছে না, সেগুলি নির্গত হয়েছে বা বর্তমানে চলছে তা প্রভাবিত হবে না।


ডকুমেন্টেশন অনুসারে যখন ডকার ছাঁটাই চালাচ্ছেন কেবলমাত্র ঝাঁকুনির চিত্রগুলি সরানো হবে। -এটি নিশ্চিত করবে যে অব্যবহৃত চিত্রগুলিও ঠিক মুছে ফেলা হয়েছে? docs.docker.com/engine/reference/commandline/system_prune
Herm



7
docker system prune --all --filter "until=24h"সাম্প্রতিক চিত্রগুলিও সংরক্ষণ করে
হ্যারি মোরেনো

1
ডকস.ডকার / ইঞ্জিনে / রেফারেন্স / কম্যান্ডলাইন / সিস্টেমে_প্রুন… / এর মতে docker system prune -aবন্ধ হওয়া পাত্রগুলিও সরিয়ে দেয়। সুতরাং এটি কেবলমাত্র বহির্গমন পাত্রে যুক্ত ছবিগুলি সরিয়ে ফেলতে হবে, তাই না?
lfk

41

ড্যাংলিং ইমেজগুলি সাফ করার সবচেয়ে নিরাপদ এবং সহজতম উপায়

docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi

ডকার চিত্রগুলি একাধিক স্তর নিয়ে গঠিত। ছ্যাঁকানো চিত্রগুলি, এমন স্তরগুলি যা কোনও ট্যাগযুক্ত চিত্রের সাথে কোনও সম্পর্ক রাখে না। তারা আর কোনও উদ্দেশ্যে পরিবেশন করে না এবং ডিস্কের জায়গা গ্রাস করে।

দ্রষ্টব্য: আমি pruneউত্পাদনে ব্যবহার না করার পরামর্শ দিচ্ছি , কারণ docker system prune -aধারনাকারীর দ্বারা संदर्भিত নয় এমন সমস্ত চিত্র সরিয়ে ফেলবে, যার মাধ্যমে আমরা আগের প্রকাশে ফিরে যেতে পারি না।

এর -fমান সহ ফিল্টার পতাকা যুক্ত করে ঝুলন্ত চিত্রগুলি তালিকাভুক্ত dangling=trueকরতে docker images

ছড়িয়ে পড়া চিত্রগুলি তালিকাবদ্ধ করুন

docker images -f dangling=true

ঝোলা ছবিগুলি সরান

docker rmi $(docker images -f dangling=true -q)

অথবা

docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi

যখন আমরা কোনও ক্রোন জব চালাই তখন থান ঝাঁকুনির জিনিসগুলি মুছে ফেলার জন্য উপরেরটি ব্যবহার করে নিশ্চিত করুন যে কাজটি সফলভাবে চলছে? জেনকিন্সের মতো আমরা যদি বেলো কমড জব দিয়ে ফ্রি স্টাইলের কাজ চালাই তবে মেশিনে কোনও ঝোলা জিনিস না থাকলেও কখনই ব্যর্থ হবে না।

ঝাঁকুনির চিত্রগুলি পরিষ্কার করার এবং আমাদের ডিস্কের স্পেসটি ব্যবহারের জন্য ফিরে পেতে এটিই সবচেয়ে নিরাপদ এবং সহজ উপায়।


2
ডকার ইমেজ ছাঁটাই সম্পর্কে কি? দস্তাবেজগুলি বলেছেন: "সমস্ত ঝুঁকির চিত্রগুলি সরান। docs.docker.com/engine/reference/commandline/image_prune/...
Herm

2
@ হের্ম, পৃষ্ঠার নীচে থেকে আপনি উল্লেখ করেছেন "দ্রষ্টব্য: ছাঁটাই থেকে কোনও কিছুই অপসারণ করার আগে আপনাকে নিশ্চিতকরণের জন্য অনুরোধ করা হবে, তবে আপনাকে কীভাবে সম্ভবত অপসারণ করা হবে তার একটি তালিকা প্রদর্শিত হবে না"। আমি মনে করি যে এই উত্তরের বক্তব্যটি হ'ল আপনি ঝুলন্ত চিত্রগুলির একটি তালিকা পেতে পারেন, যা আপনি স্পষ্টভাবে মুছে ফেলার জন্য নির্দিষ্ট করে দিয়েছেন, অন্ধভাবে ছাঁটাইযুক্ত সমস্ত চিত্রকে অন্ধভাবে মুছে ফেলার বিরোধিতা হিসাবে।
bjier

নাম এবং ট্যাগ নেই এমন চিত্রগুলি docker imagesকোনওভাবেই জটলা হয় না। কিভাবে তাদের আকার চেক? এছাড়াও, নাম এবং ট্যাগ নেই docker images -aএমন চিত্রগুলির মধ্যে অন্তর্বর্তী চিত্রগুলি নয়। এগুলি কীভাবে মুছে ফেলা যায় এবং কীভাবে তাদের আকার চেক করা যায়?
পরিবর্তনশীল

17

ডকারে থাকা চিত্রগুলি একটি sha256 ডাইজেস্ট দ্বারা রেফারেন্স করা হয়, প্রায়শই চিত্র আইডি হিসাবে উল্লেখ করা হয়। ডকার হস্টে ইমেজটি উপস্থিত থাকার জন্য আপনার হজম দরকার all সাধারণত, আপনার কাছে এমন ট্যাগ থাকবে যা এই হজমে নির্দেশ করে, যেমন ট্যাগ ব্যস্তবক্স: আমার সিস্টেমে ইমেজ আইডি c30178c523 ... এর সর্বশেষতম পয়েন্টগুলি। একাধিক ট্যাগ একই চিত্রের দিকে ইঙ্গিত করতে পারে এবং যে কোনও ট্যাগ আলাদা আইডির দিকে নির্দেশ করতে পারে, যেমন আপনি যখন ব্যস্তবক্সের একটি নতুন অনুলিপি টানেন: সর্বশেষ বা আপনার অ্যাপ্লিকেশন চিত্রটির একটি নতুন সংস্করণ তৈরি করবেন।

ঝাঁকুনির চিত্রগুলি এমন চিত্র যাগুলির কোনও ট্যাগ নেই, এবং কোনও শিশু চিত্র নেই (উদাহরণস্বরূপ একটি পুরানো চিত্র যা এর ভিন্ন সংস্করণ ব্যবহার করেছিল FROM busybox:latest), সেগুলিকে নির্দেশ করে। তারা হয়ত তাদের আগে একটি ট্যাগ দেখিয়েছিল এবং সেই ট্যাগটি পরে পরিবর্তন হয়েছিল। অথবা তাদের কাছে কোনও ট্যাগ কখনও থাকতে পারে না (যেমন docker buildট্যাগ বিকল্পটি অন্তর্ভুক্ত না করে আউটপুট )। এগুলি সাধারণত মুছে ফেলা নিরাপদ যতক্ষণ না কোনও পাত্রে এখনও সেই পুরানো চিত্র আইডির উল্লেখ নেই। এগুলি প্রায় রাখার মূল কারণটি ক্যাচিংয়ের উদ্দেশ্য তৈরি করা build

এছাড়াও, আপনি এমন চিত্র ডাউনলোড করতে পারেন যা আপনি বর্তমানে পাত্রে ব্যবহার করা হয়নি (বন্ধ পাত্রে অন্তর্ভুক্ত)। এগুলি ঝুঁকির চিত্রগুলির থেকে সম্পূর্ণ আলাদা এবং যতক্ষণ না আপনি ভবিষ্যতে সেগুলি ব্যবহারের পরিকল্পনা না করেন বা অন্য কপিটি ডাউনলোড করার দরকার মনে করেন না, সেগুলি মুছে ফেলা নিরাপদ হতে পারে।


একটি ডকার বিল্ড চলমান অবস্থায় (এটি প্রক্রিয়া যা এটি স্তরগুলি এবং ভবিষ্যতের ঝোলা ইমেজগুলির জন্য সম্ভাব্য প্রার্থীদের তৈরি করে) একটি নতুন উইন্ডোতে যদি আমি ডকার ইমেজ ছাঁটাই চালাই, তবে, এটি কোনওভাবেই বিল্ডটিকে অগ্রগতিতে প্রভাবিত করবে?
পরিবর্তনশীল

@ পরিবর্তনশীল সেখানে একটি জাতি শর্ত থাকতে পারে, কিন্তু সাধারণত একটি বিল্ড পদক্ষেপের জন্য চলমান ধারকটির ফলে চিত্রটি ব্যবহৃত হিসাবে চিহ্নিত হয়ে থাকবে। সবচেয়ে খারাপ যেটি ঘটতে পারে তা হ'ল হয় ছাঁটাইটি একটি ত্রুটি ছুঁড়ে দেয়, বা বিল্ডটি করে দেয় এবং আপনাকে এটি আবার চালাতে হবে। আপনি বর্তমানে যে চিত্রগুলি তৈরি করতে ব্যবহার করছেন তা এড়াতে আপনি আপনার ছাঁটাই সীমাবদ্ধ করতে পারবেন কিনা তা আমি খতিয়ে দেখি যেহেতু একটি সফল ছাঁটাই ভবিষ্যতে আবার চিত্রগুলি ডাউনলোড করার প্রয়োজন হবে।
বিএমইচ

মধ্যস্থতাকারী চিত্রগুলি (যাদের চালানোর সময় কোনও নাম / ট্যাগ নেই docker images -a) তাদের কী ঝোলা ইমেজ বলা হয়? তারা কি ডকার ইমেজ ছাঁটাই দিয়ে সাফ হয়ে যায়?
পরিবর্তনশীল

আমার আর এগুলি আমার পরিবেশে নেই (এখানে বিল্ডকিট ব্যবহার করে), তাই আমি কী ঘটে তা দেখার জন্য নিজেকে একটি পরীক্ষাগার পরিবেশে চেষ্টা করার পরামর্শ দেব।
বিএমইচ

এটি বলেছিল, মধ্যবর্তী পর্যায় থেকে অচলিত "চিত্রগুলি" মুছে ফেলা মোটামুটি অর্থহীন, যদি আপনি চূড়ান্ত ট্যাগযুক্ত চিত্রটি না মুছেন, সমস্ত স্তরগুলি পরবর্তী চিত্রে পুনরায় ব্যবহার করা হবে এবং মোছা যাবে না। যদি আপনি এগুলি মুছে ফেলেন তবে আপনি আপনার বিল্ড ক্যাশেটি ধ্বংস করেন এবং ভবিষ্যতের সমস্ত চিত্রগুলি তৈরি করতে আরও সময় এবং ডিস্কের স্থান সঞ্চয় করতে দেয়।
বিএমইচ

5

ড্যাংলিং ইমেজগুলি এমন স্তর যাগুলির কোনও ট্যাগযুক্ত চিত্রের সাথে কোনও সম্পর্ক নেই। তারা আর কোনও উদ্দেশ্যে পরিবেশন করে না এবং ডিস্কের জায়গা গ্রাস করে।

অব্যবহৃত চিত্রটি এমন একটি চিত্র যা কোনও ধারক হিসাবে বরাদ্দ বা ব্যবহার করা হয়নি।

ছড়িয়ে পড়া চিত্রগুলি তালিকাবদ্ধ করুন

docker images -f dangling=true

3

ডাংলিং ইমেজগুলি অচলিত চিত্র। নিম্নলিখিত কমান্ড dangling চিত্রের তালিকা দেয়।

docker images --filter "dangling=true"

docker image prune সমস্ত ঝুঁকির চিত্র মুছে দেয়।

অব্যবহৃত ছবি হ'ল এমন চিত্র যা ট্যাগ রয়েছে তবে বর্তমানে ধারক হিসাবে ব্যবহৃত হচ্ছে না। ভবিষ্যতে আপনার প্রয়োজন হতে পারে বা নাও পারে।

docker image prune -a সমস্ত ঝুঁকির পাশাপাশি অব্যবহৃত চিত্রগুলি মুছুন।

আপনি সাধারণত কিছু সময় অবধি সমস্ত অব্যবহৃত চিত্রগুলি সরাতে চান না। সুতরাং একটি ফিল্টার দিয়ে অপসারণ করা ভাল।

docker image prune -f --filter "until=6h"


1) docker image prune -a -f --filter "until=6h"এছাড়াও ঝুঁকিপূর্ণ চিত্রগুলি মুছবেন?
পরিবর্তনীয়

২) আপনার শেষ আদেশে আপনি উল্লেখ করেছেন docker image prune -f --filter "until=6h"- যেহেতু কোনও -a নেই - তবে এটি কীভাবে অব্যবহৃত চিত্রগুলি সরিয়ে ফেলবে?
পরিবর্তনশীল

0

আমি এখানে অ্যান্ডিফের সৌজন্যে ঝাঁকুনির চিত্রগুলি অপসারণের জন্য দরকারী কমান্ড (উপাত্তগুলি) দেখেছি: https://forums.docker.com/t/how-to-delete-cache/5753 :

alias docker_clean_images='docker rmi $(docker images -a --filter=dangling=true -q)' 
alias docker_clean_ps='docker rm $(docker ps --filter=status=exited --filter=status=created -q)' 

প্রথমটি সমস্ত ঝুঁকির চিত্রগুলি পরিষ্কার করে। এটি একাধিক বিল্ড থেকে ছেড়ে যাওয়া মধ্যবর্তী চিত্রগুলি সরিয়ে ফেলতে দরকারী। দ্বিতীয়টি হ'ল থামানো পাত্রে অপসারণের জন্য। এগুলি নিয়মিত রক্ষণাবেক্ষণের জন্য আমি ব্যবহার করি i

আপনি যদি আপনার সমস্ত ক্যাশে মুছে ফেলতে চান তবে আপনাকে প্রথমে নিশ্চিত করতে হবে যে সমস্ত ধারক বন্ধ এবং অপসারণ করা হয়েছে, যেহেতু আপনি কোনও ধারক দ্বারা ব্যবহৃত কোনও চিত্র সরাতে পারবেন না। অনুরূপ কিছু

docker kill $(docker ps -q) docker_clean_ps docker rmi $(docker images
-a -q)

এটি আপনার ক্যাশে থাকা সমস্ত চিত্রকে মেরে ফেলবে।


0

চিত্রগুলির স্ক্রিনশটে "কোনও কিছুই নেই" নামটি চিত্রের ঝাঁকুনি। একটি ঝুঁকির চিত্রটির অর্থ হ'ল আপনি চিত্রটির নতুন বিল্ড তৈরি করেছেন, তবে এটি কোনও নতুন নাম দেওয়া হয়নি। সুতরাং আপনার পুরানো চিত্রগুলি "ঝুঁকির চিত্র" হয়ে উঠেছে। আপনি ডক ইমেজ চালানোর সময় সেই পুরানো চিত্রগুলিই অচিরাচরিত থাকে এবং এর নামে প্রদর্শিত হয় "।

docker system prune -a, এটি অব্যবহৃত এবং জঞ্জাল উভয় চিত্র সরিয়ে ফেলবে। অতএব, কোনও পাত্রে কোনও চিত্র ব্যবহৃত হচ্ছে, সেগুলি বাইরে বেরিয়ে এসেছে বা বর্তমানে চলছে তা প্রভাবিত হবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.