ডকার রান: কেন --rm ব্যবহার করুন (ডক নবাগত)


114

আমি প্রথমবারের মতো ডকার চেষ্টা করছি এবং এখনও একটি "মানসিক মডেল" নেই। মোট শিক্ষানবিশ।

আমি যে উদাহরণগুলি দেখছি সেগুলিতে --rmপতাকা চালানোর জন্য অন্তর্ভুক্ত করা হয়েছে , যেমন

docker run -it --rm ...
docker container run -it --rm ...

প্রশ্ন:

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

সুতরাং, আমি জানি আমার ডকার সম্পর্কে ভুল ধারণা আছে।


6
--rmথামানো পাত্রে সরিয়ে দেয় (এক এটি docker runতৈরি করে), চিত্রটি নয় যা এটি নির্ভর করে (আপনি কী ডাউনলোড করেছেন)।
রাই-

docker run --helpদরকারী হতে হবে। আপনি যদি ধারক অপসারণ করতে না চান , আপনি এটি পাস করতে পারবেন
indapublic

4
এটি অবশ্যই হবে --rmএবং কনটেইনারটি প্রস্থান করার পরে এটি স্বয়ংক্রিয়ভাবে ধারকটি পরিষ্কার করা এবং ফাইল সিস্টেমটি সরিয়ে ফেলা উচিত এবং এর অর্থ এই নয় যে ধারকটি থেকে স্টাফগুলি সরিয়ে নেওয়া উচিত।
মহাত্তম

4
আপনি পাত্রে ডাউনলোড করেন না, আপনি চিত্রগুলি ডাউনলোড করেন। চিত্র এবং ধারকগুলির
ডকার-

উত্তর:


101

পাত্রগুলি কেবল চালানোর জন্য আপনি যে চিত্রটি ব্যবহার করেন তা কেবল একটি উদাহরণ। একটি ধারক অ্যাপ্লিকেশন তৈরি করার সময় মনের অবস্থা উদাহরণস্বরূপ একটি নতুন, ক্লিন উবুন্টু ধারক গ্রহণ না করে এবং এতে আপনি যে অ্যাপ্লিকেশন এবং কনফিগারেশনগুলি চান তা ডাউনলোড করে তা চালিয়ে যেতে দেয়।

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

এটি করার পরে, আপনার একটি চিত্র রয়েছে যাতে সমস্ত কিছু রয়েছে এবং আপনার অ্যাপ্লিকেশনটি ব্যবহার করার জন্য, আপনি কেবল সঠিক পোর্ট সেটিংস বা অন্যান্য গতিশীল ভেরিয়েবলগুলি ব্যবহার করে চিত্রটি চালান using docker run <your-image>

--rmকোনও কিছু সম্পাদনের জন্য আপনি খুব অল্প সময়ের জন্য ব্যবহার করেছেন এমন কনটেইনারগুলির সাথে পতাকা সহ পাত্রে চালানো ভাল, উদাহরণস্বরূপ, একটি ধারকটির ভিতরে আপনার অ্যাপ্লিকেশনটি সংকলন করুন, বা এটি যে কাজ করে যা কিছু পরীক্ষা করে দেখুন এবং তারপরে আপনি এটি একটি স্বল্পকালীন পাত্রে জানেন এবং আপনি আপনার ডকার ডেমনকে বলুন যে এটি শেষ হয়ে গেলে এর সাথে সম্পর্কিত সমস্ত কিছু মুছুন এবং ডিস্কের স্থানটি সংরক্ষণ করুন।


পরিবেশের ভেরিয়েবলগুলি ডকার রানে পাস করা আরও ভাল বিকল্প হতে পারে। এইভাবে আপনি বিভিন্ন কনফিগারেশন দিয়ে শুরু করতে পারেন (উদাঃ উত্পাদন বনাম প্রস্তুতি)?
এসসিও

প্রোড বনাম পরীক্ষার পরিবেশ একটি ভাল উদাহরণ যেখানে আপনি সম্ভবত আলাদা হওয়া তৈরি করতে env vars ব্যবহার করতে চান এবং একই অ্যাপ্লিকেশন থেকে আপনার অ্যাপ্লিকেশনটি চালাতে চান, তবে প্রতিটি
এনভির

--rmব্যবহারকারী যখন টার্মিনাল উইন্ডোটি বন্ধ করে দেয় তখন যে পাত্রে ব্যবহার শুরু হয় তা স্বয়ংক্রিয়ভাবে মুছে ফেলার কোনও উপায় আছে ? অর্থাৎ ইচ্ছাকৃতভাবে exitধারক শেলের মধ্যে চালানো নয় , তবে কেবলমাত্র টার্মিনাল জিইউআই উইন্ডোটি বন্ধ করে দেয়। আমি লক্ষ করেছি যে এই ক্ষেত্রে পাত্রে মুছে ফেলা হয় না।
ভেঙ্করাও

20

--rmটাস্কটি সম্পূর্ণ হওয়ার পরে আপনার যখন ধারক মুছতে হবে তখন পতাকাটি ব্যবহৃত হয়।

এটি ক্ষুদ্র পরীক্ষার জন্য বা পিওসি উদ্দেশ্যে উপযুক্ত এবং ঘর রাখার জন্য মাথাব্যথা বাঁচায়।


16

Https://docs.docker.com/engine/references/run/#clean-up---rm থেকে

ডিফল্টরূপে একটি ধারকটির ফাইল সিস্টেম ধারকটি প্রস্থান করার পরেও স্থির থাকে। এটি ডিবাগিংকে অনেক সহজ করে তোলে (যেহেতু আপনি চূড়ান্ত অবস্থাটি পরীক্ষা করতে পারবেন) এবং আপনি আপনার সমস্ত ডেটা ডিফল্টভাবে ধরে রাখেন। তবে আপনি যদি স্বল্প-মেয়াদী অগ্রভাগ প্রক্রিয়া চালিয়ে যাচ্ছেন তবে এই ধারক ফাইল সিস্টেমগুলি সত্যই পাইল আপ করতে পারে। পরিবর্তে যদি আপনি ডকার চান যে কন্টেইনারটি স্বয়ংক্রিয়ভাবে পরিষ্কার হয়ে যায় এবং কন্টেইনারটি প্রস্থান করার সময় ফাইল সিস্টেমটি সরিয়ে দেয়, আপনি --rmপতাকাটি যুক্ত করতে পারেন

সংক্ষেপে, হোস্টটিকে থামানো এবং অব্যবহৃত পাত্রে থেকে পরিষ্কার রাখা কার্যকর।


1

--rmডেটাবেস ব্যাকআপ বা ফাইল অনুলির মতো কিছু ক্রিয়াকলাপ চালানোর জন্য চলমান ধারকগুলিতে সংযোগ করার সময় আমি ব্যবহার করি । এখানে একটি উদাহরণ:

docker run -v $(pwd):/mnt --link app_postgres_1:pg --rm postgres:9.5 pg_dump -U postgres -h pg -f /mnt/docker_pg.dump1 app_db

উপরেরগুলি 'app_postgres_1' নামে একটি চলমান ধারককে সংযুক্ত করবে এবং একটি ব্যাকআপ তৈরি করবে। ব্যাকআপ কমান্ডটি শেষ হয়ে গেলে, ধারকটি পুরোপুরি মুছে ফেলা হবে।

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