ডকার স্ব-হোস্ট করা অ্যাপ্লিকেশন চালানোর সবচেয়ে সহজ উপায়গুলির মধ্যে একটি, তবে প্রাথমিক ইনস্টলেশন প্রক্রিয়াটি বেশ সময়সাপেক্ষ হতে পারে। সঠিক CLI (যারা জানেন না তাদের জন্য কমান্ড লাইন ইন্টারফেস) কমান্ড টাইপ করার জন্য নির্ভুলতা প্রয়োজন এবং এমনকি একটি ভুলও আপনাকে প্রক্রিয়াটি পুনরাবৃত্তি করতে বাধ্য করবে। এমন একটি প্রক্রিয়ার জন্য যা ইতিমধ্যেই নতুনদের জন্য একটু ভীতিজনক, এটি জিনিসগুলিকে বিশৃঙ্খলার মধ্যে ফেলতে পারে – কিন্তু সেখানেই ডকার কম্পোজ আসে৷
এটি একাধিক পাত্র তৈরি করা এবং একটি একক YAML ফাইলের মধ্যে পরামিতিগুলি সংজ্ঞায়িত করা সহজ করে তোলে। আপনি নোটপ্যাডের মতো কিছুতে ফাইলটি তৈরি করুন এবং তারপর একটি একক, তিন-শব্দের কমান্ড দিয়ে টার্মিনাল থেকে চালান। আপনি কি জানতে চান যে আমি টার্মিনালে ডকার কম্পোজের জন্য রান কমান্ড টাইপ করতে কতবার ভুল করেছি? শূন্য। এবং এটি একটি সুন্দর জিনিস.
ডকার কম্পোজ টার্মিনাল টাইপো কমায়
এবং এটি পুনরায় ইনস্টলেশন সহজ করে তোলে
বিভিন্ন অ্যাপের বিভিন্ন ইনস্টলেশনের প্রয়োজনীয়তা থাকে, কিন্তু ডকার বা টার্মিনালের মাধ্যমে ইনস্টল করার সময় আপনাকে সাধারণত কোডের কয়েকটি লাইন প্রবেশ করতে হবে। উদাহরণ স্বরূপ Valos নিন; এর ইনস্টলেশন প্রক্রিয়া নিম্নরূপ:
docker run -d --name wallos -v /path/to/config/wallos/db:/var/www/html/db \
-v /path/to/config/wallos/logos:/var/www/html/images/uploads/logos \
-e TZ=Europe/Berlin -p 8282:80 --restart unless-stopped \
bellamy/wallos:latest
প্রক্রিয়াটি শুরু করতে আপনাকে যা করতে হবে তা হল টার্মিনালে এটি টাইপ করুন। সেখানে ভুল হওয়ার সম্ভাবনা অনেক বেশি। অন্যদিকে, ডকার কম্পোজ ব্যবহার করার জন্য, আপনাকে শুধুমাত্র একটি নোটপ্যাড ফাইলে নিম্নলিখিতগুলি অনুলিপি এবং পেস্ট করতে হবে:
services:
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
- "8282:80/tcp"
environment:
TZ: 'America/Toronto'
# Volumes store your data between container upgrades
volumes:
- './db:/var/www/html/db'
- './logos:/var/www/html/images/uploads/logos'
restart: unless-stopped
একবার আপনি এটি সম্পন্ন করার পরে, আপনি টার্মিনাল (বা পাওয়ারশেল বা অনুরূপ অ্যাপ) খুলতে পারেন এবং টাইপ করতে পারেন:
docker compose up
সম্মত, আছে কিছু? আরও কিছু কমান্ড জড়িত আছে – অর্থাৎ, আপনাকে নির্দেশটি নির্দেশ করতে হবে যেখানে আপনি ডকার কম্পোজ ফাইলটি সংরক্ষণ করেছেন – তবে এটি ম্যানুয়ালি কোড প্রবেশের চেয়ে নাটকীয়ভাবে সহজ। এর মানে হল আপনি একই ডকার কম্পোজ কমান্ড বারবার চালিয়ে একাধিক ডিভাইসে একই ফাইল ইনস্টল করতে পারেন (বা একই অ্যাপ্লিকেশন চালিত একাধিক কন্টেইনার তৈরি করতে পারেন)।
এই ডকার ধারকটি আমার জেলিফিন লাইব্রেরিগুলি পরিচালনা করতে সহায়তা করে এবং আমি এটি পছন্দ করি
কোন মিথ্যা পোস্টার বা মেটাডেটা
সমস্যা সমাধান সহজ হয়ে যায়
আমার ডকার কম্পোজ ফাইল চলমান রাখা
যখন আমি টার্মিনালে কিছু প্রবেশ করি, যতক্ষণ পর্যন্ত সেই উইন্ডোটি খোলা থাকে ততক্ষণ আমি এটি পর্যালোচনা করতে পারি। একবার আমি এটি বন্ধ করলে, আমি যা টাইপ করেছি তা চলে গেছে। যাইহোক, ডকার কম্পোজের সাথে, আমি YAML ফাইল সংরক্ষণ করার জন্য নির্দিষ্ট ফোল্ডার তৈরি করি। যদি আমি পরে একটি ধারক নিয়ে সমস্যার সম্মুখীন হই, আমি সম্ভাব্য সমস্যা পয়েন্টগুলি দেখতে মূল কোডটি পর্যালোচনা করতে পারি।
উপরন্তু, অনেক ডেভেলপার তাদের সংগ্রহস্থলের অংশ হিসেবে ডকার কম্পোজ ফাইল অন্তর্ভুক্ত করে। আমি GitHub ইতিহাসের মাধ্যমে পরিবর্তনগুলি ট্র্যাক করতে পারি এবং আমি বিশ্বাস করতে পারি যে এটি আমার চোখের চেয়ে বেশি লোকের দ্বারা নিরীক্ষিত হয়েছে।
আমার অ্যাপস একা থাকে না
গুরুত্বপূর্ণ ফাইলগুলিকে আর আলাদাভাবে আরম্ভ করার প্রয়োজন নেই
যদিও অনেক ডকার অ্যাপ্লিকেশন সম্পূর্ণরূপে তাদের নিজস্বভাবে চলতে পারে, অন্যদের সমর্থন প্রয়োজন। উদাহরণস্বরূপ, শিওরি চালানোর সময়, যেতে যেতে আমার বুকমার্কগুলির লাইব্রেরি অ্যাক্সেস করার জন্য আমার একটি বিপরীত প্রক্সি দরকার৷ আমাকে এটি শিওরি থেকে আলাদাভাবে চালাতে হবে – যদি না আমি একটি ডকার কম্পোজ ফাইল তৈরি করি যা একই সাথে উভয় আইটেম চালু করে। এর মানে হল যে যখনই আমাকে কন্টেইনার রিসেট করতে হবে, স্টার্টআপ প্রক্রিয়াটি অনেক বেশি বিরামহীন হবে। আমাকে চিন্তা করতে হবে না যে আমি প্রক্সি বুট করতে ভুলে যেতে পারি এবং পরে জানতে পারি যে আমি আমার ফোন থেকে আমার বুকমার্কগুলি অ্যাক্সেস করতে পারছি না৷
সমস্যা সমাধানের সময়, ডাটাবেসের সাথে কারসাজি না করে পরিষেবাগুলি পুনরায় চালু করা সহজ হয়ে যায়। আমি শুধু দৌড়াতে পারি ডকার বিল্ড পুনরায় চালু করুন, এবং যদি আমাকে সবকিছু শেষ করে আবার শুরু করতে হয়, ডকার লিখুন সমস্ত পাত্র সরিয়ে দেয়।
5 ডকার ভুল নতুনরা তাদের প্রথম মাসে করে
আমরা সবাই তাদের তৈরীর জন্য দোষী
ডকার কম্পোজ অনেক ব্যবহারের জন্য কিছুটা ওভারকিল হতে পারে
বেশিরভাগ হোমল্যাবগুলির জন্য, এটি প্রয়োজনীয় নয়
সর্বাধিক জনপ্রিয় স্ব-হোস্টেড অ্যাপ্লিকেশন (জেলিফিন, প্লেক্স, হোম সহকারী, ইত্যাদি) হল একক-ধারক অ্যাপ্লিকেশন। মৌলিক কার্যকারিতা অ্যাক্সেস করতে আপনাকে একসাথে একাধিক পাত্র চালানোর দরকার নেই। ডকার কোডের কয়েকটি লাইন ভীতিকর মনে হতে পারে, তবে আপনাকে সাধারণত তিন বা চারটির বেশি স্ট্রিং এবং কয়েকটি পোর্ট উপাধি টাইপ করতে হবে না। ডকার কম্পোজের জন্য YAML সিনট্যাক্স শেখা প্রয়োজন (যদি আপনি ইতিমধ্যে এটি জানেন না), একটি ফোল্ডারে একটি ফাইল তৈরি এবং সংরক্ষণ করা এবং সেই ফোল্ডারে টার্মিনাল নির্দেশ করা। এটি বেশিরভাগ অ্যাপ্লিকেশনের জন্য অনেকগুলি পদক্ষেপ, এমনকি যদি এটি আপনাকে মাঝে মাঝে ভুল এবং টার্মিনাল ব্যবহারের পুনরায় টাইপ করার পদ্ধতি থেকে বাঁচাতে সহায়তা করে।
ভবিষ্যত প্রুফিং এর জন্য একটি সহজ (যদি আরও ধাপে-নিবিড়) প্রক্রিয়া শেখা ভাল।
আপনি সম্ভবত দীর্ঘ সময়ের জন্য শুধুমাত্র একটি ধারক ব্যবহার করবেন না
যদিও আপনি প্লেক্স বা জেলিফিনের মতো কিছুর জন্য একটি একক ধারক চালানো শুরু করতে পারেন, তবে এটির ক্ষেত্রে এটি থাকার সম্ভাবনা কম। স্ব-হোস্টিং হল নিয়ন্ত্রণ পুনরুদ্ধারের বিষয়ে, এবং আপনি সম্ভবত আপনার সেটআপে অন্যান্য অতিরিক্ত যোগ করা শুরু করবেন। আপনার মিডিয়া সার্ভারের সাথে সোনার বা রাডার কতক্ষণ চলবে? যদিও একটি একক ধারক প্রোগ্রামের জন্য YAML শেখা কিছুটা বেশি হতে পারে, আপনি যখন একটি একক ধারক ছাড়িয়ে কার্যকারিতা বাড়াতে চান তখন এটি কার্যকর হয়। এটি আপনার আবেদনকারীদের জন্য একটি উত্সর্গীকৃত সূচনা পয়েন্ট তৈরি করা খুব সহজ করে তোলে এবং সত্যই, YAML শেখার জন্য একটি চিনচ।
ডকার রচনা আশ্চর্যজনক, কিন্তু আমি না আসলে টার্মিনাল ব্যবহার করার জন্য দুঃখিত
তাই শুরুতে হয়তো একটু মিথ্যা বলেছি। যদিও আমি এখন টার্মিনালের মাধ্যমে কমান্ড প্রবেশ করার পরিবর্তে ডকার কম্পোজ বেছে নিই, আমি সঠিক সিনট্যাক্স এবং বিন্যাস শেখার সময় ব্যয় করার জন্য অনুশোচনা করি না। এটি আমাকে কনটেইনারগুলি কীভাবে কাজ করে, প্রতিটি কমান্ড কী করে তা শিখতে সাহায্য করেছে এবং সমস্যাগুলি দেখা দেওয়ার সাথে সাথে আমাকে আরও ভালভাবে সজ্জিত করেছে। এটি বলেছিল, আমার কাছে এখন উভয় জগতের সেরা রয়েছে: ডকার এবং এর পাত্রগুলির বোঝা এবং সেই জ্ঞান প্রয়োগ করার একটি সহজ উপায়।