আমি বড় ডকার ইমেজগুলির সমস্যা সমাধানে অনেক সময় ব্যয় করতাম, বিল্ডগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করতাম এবং নষ্ট স্টোরেজ সম্পর্কে উদ্বিগ্ন হতাম। আমি আমার ডকারফাইলগুলিকে যতই যত্ন সহকারে গঠন করি না কেন, ইমেজগুলি সর্বদা প্রয়োজনের চেয়ে ভারী হয়ে ওঠে। যখন আমি স্লিমটুলকিট (পূর্বে ডকারস্লিম নামে পরিচিত) আবিষ্কার করেছি তখন এটি সব বদলে গেছে।
এই টুলটি একটি ডকার ইমেজ বিশ্লেষণ করে, রানটাইমে আসলে কোন ফাইল এবং নির্ভরতা প্রয়োজন তা শনাক্ত করে এবং অন্য সবকিছু সরিয়ে দেয়। SlimToolkit কিভাবে কাজ করে এবং আমি কোন কিছু না ভেঙে আমার ডকার ইমেজগুলিকে সঙ্কুচিত করতে যে পদক্ষেপগুলি ব্যবহার করতাম তা দেখতে এই নির্দেশিকা অনুসরণ করুন৷
বিষয়বস্তুর সারণী
SlimToolkit ডকার ইমেজ অপ্টিমাইজেশানকে সহজ করে তোলে
SlimToolkit একটি ওপেন-সোর্স টুল যা অ্যাপ্লিকেশন কোড বা ডকারফাইলগুলিতে পরিবর্তনের প্রয়োজন ছাড়াই ডকার ছবির আকার হ্রাস করে। এটি ম্যানুয়াল অপ্টিমাইজেশান পদক্ষেপগুলির প্রয়োজনীয়তাকে সরিয়ে দেয়, যেমন প্যাকেজগুলি পরিষ্কার করা বা বিল্ড স্টেজগুলি পুনর্লিখন করা। পরিবর্তে, SlimToolkit স্বয়ংক্রিয়ভাবে ইমেজ অপ্টিমাইজেশন পরিচালনা করে এবং প্রক্রিয়াটিকে সহজ রাখে।
আপনি যখন একটি ডকার ইমেজে SlimToolkit চালান, তখন এটি ধারকটি কীভাবে চলে তা দেখে একটি গতিশীল বিশ্লেষণ করে। এটি কার্যকর করার সময় অ্যাপ্লিকেশনটি স্পর্শ করে ঠিক কোন ফাইল, লাইব্রেরি এবং নির্ভরতা ট্র্যাক করে। এই ডেটার উপর ভিত্তি করে, এটি একটি নতুন, অপ্টিমাইজ করা ছবি তৈরি করে যাতে শুধুমাত্র প্রয়োজনীয় উপাদান থাকে। এটি মূল চিত্রটিকে অপরিবর্তিত রাখে, প্রক্রিয়াটিকে নিরাপদ এবং সহজে বিপরীত করে তোলে৷
SlimToolkit বিদ্যমান চিত্রগুলির সাথে কাজ করে এবং Node.js, Python, Java, এবং Go সমর্থন করে, উন্নত ডকার বা লিনাক্স জ্ঞানের প্রয়োজন ছাড়াই। এটি বেশিরভাগ ওয়ার্কফ্লোতে নির্বিঘ্নে সংহত করে, আক্রমণকারীরা শোষণ করতে পারে এমন অব্যবহৃত সরঞ্জাম এবং শেলগুলি সরিয়ে কন্টেইনার সুরক্ষার উন্নতি করে। ছোট ছবিগুলি দ্রুত ডাউনলোড করে, দ্রুত শুরু করে এবং কম সংস্থান খরচ করে, যা CI/CD পাইপলাইনগুলির জন্য একটি বিশাল জয়৷
Docker এর মাধ্যমে SlimToolkit ব্যবহার করা সবচেয়ে সহজ পদ্ধতি কারণ এটির জন্য কোন স্থানীয় ইনস্টলেশনের প্রয়োজন নেই। যতক্ষণ ডকার ইন্সটল এবং চলমান থাকে, ততক্ষণ আপনি SlimToolkit ব্যবহার শুরু করতে পারেন।
প্রথমে, নিচের ডকার কমান্ডটি ব্যবহার করে অফিসিয়াল SlimToolkit ইমেজ ডাউনলোড করুন:
docker pull dslim/slim
SlimToolkit চালানোর জন্য ডকার সকেট (/var/run/docker.sock) মাউন্ট করা প্রয়োজন। এটি ধারকটিকে আপনার স্থানীয় ডকার ইঞ্জিনের সাথে ইমেজ বিশ্লেষণ এবং অপ্টিমাইজ করার জন্য যোগাযোগ করার অনুমতি দেয়। নিশ্চিত করুন যে আপনি শুধুমাত্র বিশ্বস্ত অফিসিয়াল ছবি ব্যবহার করেন।
SlimToolkit দিয়ে ডকার ইমেজের সাইজ কমানো
অপ্টিমাইজেশান প্রক্রিয়া প্রদর্শন করতে, আমরা একটি প্রমিত Nginx চিত্রকে স্লিম করব। প্রথমে, অফিসিয়াল, সর্বশেষ Nginx ছবি টানুন:
docker pull nginx:latest
Nginx এর মতো স্ট্যান্ডার্ড অ্যাপ্লিকেশনগুলির জন্য, আপনি সরাসরি বিল্ড কমান্ড চালাতে পারেন। SlimToolkit পরীক্ষা করে যে কনটেইনারটি আসলে কোন ফাইলগুলি ব্যবহার করে এবং অপ্রয়োজনীয়গুলি সরিয়ে দেয়৷
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latest
কিছু ভাষাতে (যেমন পাইথন বা রুবি) নির্ভরতা থাকতে পারে যা একটি স্ট্যান্ডার্ড প্রোবের সময় অবিলম্বে ট্রিগার হয় না। এই ক্ষেত্রে, SlimToolkit কে কোন ফোল্ডার রাখতে হবে তা জানাতে একটি “ignore.txt” ফাইল তৈরি করুন, যেমন “/usr/local/lib/python3.11”। এটি SlimToolkit কে প্রয়োজনীয় রানটাইম নির্ভরতা অপসারণ করতে বাধা দেয়।
আপনার সংরক্ষণের নিয়মগুলি অন্তর্ভুক্ত করতে আপনি একটি ভলিউম মাউন্ট সহ কমান্ডটি চালাতে পারেন:
-v "$(pwd)":/target --preserve-path-file /target/ignore.txt আকারের পার্থক্য তুলনা করুন:আসল বনাম। পাতলা ছবি
প্রক্রিয়াটি শেষ হয়ে গেলে, SlimToolkit অপ্টিমাইজ করা ছবি স্থানীয়ভাবে সংরক্ষণ করে। আপনি এই কমান্ডের সাথে আসল এবং স্লিমড সংস্করণের মধ্যে আকারের পার্থক্য তুলনা করতে পারেন:
docker images আপনি সম্ভবত একটি নাটকীয় হ্রাস দেখতে পাবেন।
অবশেষে, আপনার নতুন অপ্টিমাইজ করা ছবি পরীক্ষা করুন যাতে এটি প্রত্যাশা অনুযায়ী কাজ করে:
docker run -it -p 8080:80 nginx-slim:latest
আপনার ব্রাউজার খুলুন এবং http://localhost:8080-এ নেভিগেট করুন। আপনি ডিফল্ট Nginx স্বাগত পৃষ্ঠা দেখতে পাবেন, কিন্তু একটি উল্লেখযোগ্যভাবে ছোট কন্টেইনার ফুটপ্রিন্ট থেকে চলছে৷
SlimToolkit আপনাকে ডকার ইমেজ বিশ্লেষণ এবং অপ্টিমাইজ করতে সাহায্য করার জন্য কয়েকটি মূল কমান্ড প্রদান করে। এখানে সবচেয়ে দরকারী একটি তালিকা আছে:
এছাড়াও আপনি নিম্নলিখিত কমান্ড ব্যবহার করে উপলব্ধ সমস্ত SlimToolkit কমান্ড এবং তাদের ব্যবহার পরীক্ষা করতে পারেন।
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim slim help
মনে রাখার সীমাবদ্ধতা
যদিও SlimToolkit ডকার ইমেজ সাইজ কমাতে সাহায্য করে, আপনার কিছু ত্রুটি বিবেচনা করা উচিত:
- বড় ছবি স্লিম করতে বেশি সময় লাগতে পারে, তাই সেই অনুযায়ী পরিকল্পনা করুন।
- কারণ টুলটি গতিশীল বিশ্লেষণ ব্যবহার করে, যদি বিল্ড প্রক্রিয়া চলাকালীন একটি নির্দিষ্ট কোড পাথ কার্যকর করা না হয়, তাহলে SlimToolkit একটি নির্ভরতা অব্যবহৃত বলে মনে করতে পারে এবং এটি মুছে ফেলতে পারে। সর্বদা আপনার স্লিম করা ছবিগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করুন।
- এটি প্রায়শই স্থান বাঁচাতে ব্যাশ বা কার্ল-এর মতো টুল সরিয়ে দেয়। প্রোডাকশন কন্টেইনারের মধ্যে সমস্যা সমাধানের জন্য আপনার যদি এগুলোর প্রয়োজন হয়, তাহলে আপনাকে অবশ্যই স্লিমটুলকিটকে সেগুলি রাখতে স্পষ্টভাবে বলতে হবে।
র্যাপিং আপ
আপনার ওয়ার্কফ্লোতে SlimToolkit যোগ করা স্থাপনাকে ত্বরান্বিত করে, সামঞ্জস্যপূর্ণ কর্মক্ষমতা নিশ্চিত করে এবং কন্টেইনার ব্লোট কমিয়ে দেয়। আপনার আসল বিল্ডগুলি অপরিবর্তিত রেখে এটি আপনাকে ক্লিনার এবং আরও পেশাদার ডকার ইমেজ তৈরি করতে সহায়তা করে। উপরন্তু, সেরা ডকার পরিষ্কারের অনুশীলনগুলি গ্রহণ করা সময়ের সাথে দক্ষ, সুসংগঠিত পাত্রে বজায় রাখতে সহায়তা করে৷