আমি হোস্ট ডিরেক্টরিতে লিঙ্ক হিসাবে মাউন্ট ভলিউম পছন্দ করি না, তাই আমি সম্পূর্ণ ডকার পরিচালিত কনটেইনার সহ ডকার পাত্রে উন্নীত করার জন্য একটি প্যাটার্ন নিয়ে এসেছি। এর সাথে একটি নতুন ডকার ধারক তৈরি করা নতুন কন্টেইনারটিকে --volumes-from <container>
আপডেট ইমেজ সহ ডকার পরিচালিত ভলিউমের মালিকানা দেবে।
docker pull mysql
docker create --volumes-from my_mysql_container [...] --name my_mysql_container_tmp mysql
তাত্ক্ষণিকভাবে আসলটি my_mysql_container
এখনও সরিয়ে না দিয়ে, আপগ্রেড করা ধারকটির সঠিক ডেটা না থাকলে বা স্যানিটি পরীক্ষায় ব্যর্থ হলে আপনার কাছে জ্ঞাত ওয়ার্কিং কনটেইনারটিতে ফিরে যাওয়ার ক্ষমতা থাকবে।
এই মুহুর্তে, আমি সাধারণত কিছু ভুল হয়ে যাওয়ার পরে নিজেকে সুরক্ষার জাল দেওয়ার জন্য ধারকটির কাছে আমার কাছে থাকা সমস্ত ব্যাকআপ স্ক্রিপ্টগুলি চালাব
docker stop my_mysql_container
docker start my_mysql_container_tmp
এখন আপনার কাছে নতুন ধারকটিতে যে ডেটা থাকার কথা রয়েছে তা নিশ্চিত করার এবং স্যানিটি চেক চালানোর সুযোগ পাবেন।
docker rm my_mysql_container
docker rename my_mysql_container_tmp my_mysql_container
ডকার ভলিউমগুলি যতক্ষণ না কোনও ধারক সেগুলি ব্যবহার করা হয় ততক্ষণ প্রায় আটকে থাকবে, যাতে আপনি মূল ধারকটি নিরাপদে মুছতে পারেন। আসল ধারকটি সরিয়ে ফেলার পরে, নতুন ধারকটি শুরু করার মতো সবকিছুকে সুন্দর করার জন্য মূলটির নামকে ধরে নিতে পারে।
ডকার পাত্রে আপগ্রেড করার জন্য এই প্যাটার্নটি ব্যবহার করার দুটি প্রধান সুবিধা রয়েছে। প্রথমত, এটি ভলিউমগুলিকে সরাসরি আপগ্রেড করা ধারকগুলিতে স্থানান্তর করার অনুমতি দিয়ে হোস্ট ডিরেক্টরিতে ভলিউম মাউন্ট করার প্রয়োজনীয়তা দূর করে। দ্বিতীয়ত, আপনি কখনই এমন অবস্থানে থাকবেন না যেখানে কর্মরত ডকারের ধারক নেই; সুতরাং যদি আপগ্রেড ব্যর্থ হয়, আপনি সহজেই মূল ডকার পাত্রে আবার স্পিনিং করে এটি কীভাবে আগে কাজ করছিল তা সহজেই ফিরতে পারবেন।