Portainer: ব্রাউজারে কন্টেইনার
ওয়েব কন্টেইনার ম্যানেজমেন্ট প্যানেল কীভাবে ইনস্টল করবেন, এটি কেন সুবিধাজনক, এবং কেন সুরক্ষা ছাড়া এটি ইন্টারনেটে উন্মুক্ত করা উচিত নয়।
আপডেট: ২৩ আগস্ট, ২০২৬
Portainer হলো Docker-এর জন্য একটি ওয়েব ইন্টারফেস: কন্টেইনারগুলোর তালিকা, লগ, কন্টেইনারে কনসোল, ভলিউম, নেটওয়ার্ক এবং Compose স্ট্যাক। "কী ক্র্যাশ করল" সেটা শুধু দেখার জন্য প্রতিবার SSH করতে না চাইলে এটি বেশ সুবিধাজনক।
ইনস্টলেশন
docker volume create portainer_data
docker run -d \
--name portainer \
--restart unless-stopped \
-p 127.0.0.1:9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.21.4
পোর্টটি লোকাল ইন্টারফেসে বাইন্ড করা। আপনি SSH টানেলের মাধ্যমে প্যানেল খুলতে পারেন:
ssh -L 9443:127.0.0.1:9443 root@<machine-address>
এরপর ব্রাউজারে https://localhost:9443 খুলুন। সার্টিফিকেটটি সেলফ-সাইনড, তাই ব্রাউজার সতর্কবার্তা দেখাবে — টানেলের মাধ্যমে অ্যাক্সেস করার সময় এটি স্বাভাবিক।
প্রথম যে ব্যক্তি প্যানেল খুলবেন, তিনিই প্রথম অ্যাডমিনিস্ট্রেটর তৈরি করবেন। আপনি যদি পোর্টটি ইন্টারনেটে খুলে রেখে চা খেতে চলে যান, তাহলে অ্যাডমিনিস্ট্রেটর আপনি হবেন না। Portainer চালু হওয়ার কয়েক মিনিট পরেই রেজিস্ট্রেশন বন্ধ করে দেয়, তবে এর উপর ভরসা করা উচিত নয় — সাথে সাথেই অ্যাকাউন্ট তৈরি করুন।
কেন এটি বিপজ্জনক এবং কী করবেন
প্যানেলটি /var/run/docker.sock মাউন্ট করে। এই সকেটে অ্যাক্সেস মানে মেশিনে root-এর সমতুল্য অ্যাক্সেস: এর মাধ্যমে আপনি হোস্টের root মাউন্ট করে একটি কন্টেইনার চালু করতে পারেন। তাই নিয়মগুলো হলো:
- পোর্টটি ইন্টারনেটে খুলে রাখবেন না। হয় SSH টানেল ব্যবহার করুন, নয়তো সার্টিফিকেট ও টু-ফ্যাক্টর অথেন্টিকেশনসহ একটি ওয়েব সার্ভার ব্যবহার করুন।
- অ্যাডমিনিস্ট্রেটরের পাসওয়ার্ড দীর্ঘ ও অনন্য রাখুন, মেশিনের root পাসওয়ার্ডের মতো একই রাখবেন না।
- সবার জন্য একটি শেয়ার করা লগইন নয়, বরং আলাদা ব্যক্তিদের জন্য সীমিত অধিকারসহ আলাদা অ্যাকাউন্ট দিন।
- প্যানেলের প্রয়োজন যদি কম হয়, তাহলে কন্টেইনারটি বন্ধ রাখুন এবং প্রয়োজন হলে চালু করুন:
docker start portainer।
কী কী সুবিধাজনক
- লগ — সার্চ ও হাইলাইটিংসহ, ৮০×২৪ টেক্সট কনসোলে
docker logs-এর চেয়ে দ্রুত। - কন্টেইনারে কনসোল — সরাসরি ব্রাউজারে।
- স্ট্যাক —
compose.yaml-এর বিষয়বস্তু পেস্ট করে ডিপ্লয় ক্লিক করুন। এককালীন সার্ভিসের জন্য ভালো, তবে স্থায়ী সার্ভিসের জন্য ফাইলটি ডিস্কে ভার্সন কন্ট্রোলের অধীনে রাখা ভালো: প্যানেলে তৈরি স্ট্যাক পুনরায় ইনস্টল করার সময় সহজেই হারিয়ে যেতে পারে। - ভলিউম ও ইমেজ — কোনটি কত জায়গা নিচ্ছে তা দেখতে পারবেন; জায়গা শেষ হয়ে যাওয়ার সমস্যা সমাধানে এটি সহায়ক।
এতে যা করা উচিত নয়
- আপনার সার্ভিস ডেফিনিশনের একমাত্র কপি এতে রাখা। ডিস্কের একটি ডিরেক্টরিতে থাকা
compose.yamlফাইলগুলো প্যানেলের চেয়ে বেশি দিন টিকবে। - ভলিউমের কী হবে তা না বুঝে "recreate" বোতাম দিয়ে কন্টেইনার আপডেট করা। দেখুন কন্টেইনার আপডেট করা।
- এটিকে মনিটরিংয়ের বিকল্প ভাবা। Portainer বর্তমান অবস্থা দেখায়, ইতিহাস নয়, এবং অ্যালার্ট পাঠায় না — সেজন্য প্রয়োজন Uptime Kuma।
রিসোর্স
কন্টেইনারটি প্রায় ১০০ MB মেমরি ব্যবহার করে এবং যেকোনো টিয়ারে চলে। ডেটা portainer_data ভলিউমে সংরক্ষিত থাকে: অ্যাকাউন্ট, সেটিংস, স্ট্যাক। এটি আপনার ব্যাকআপে অন্তর্ভুক্ত করুন, নয়তো প্যানেল আবার সেটআপ করার জন্য প্রস্তুত থাকুন।
সাধারণ ভুল
- ভুলে যাওয়া যে প্যানেলটি শুধু এই মেশিনই ম্যানেজ করে। এটি দ্বিতীয় একটি মেশিনও ম্যানেজ করতে পারে, তবে সেজন্য সেখানে একটি এজেন্ট এবং তাদের মধ্যে একটি খোলা পোর্ট প্রয়োজন।
- প্যানেলের নিজের জন্য
latestট্যাগ ব্যবহার করা। একটি মেজর আপডেট ডেটা ফরম্যাট পরিবর্তন করে। ভার্সন পিন করুন। - ক্লিনআপের মাধ্যমে একটি "অব্যবহৃত" ভলিউম মুছে ফেলা। Portainer সতর্কবার্তা দেয়, কিন্তু মানুষ না পড়েই বোতামে ক্লিক করে। কন্টেইনার বন্ধ থাকা অবস্থায় ডেটাবেসসহ ভলিউমগুলো অব্যবহৃত মনে হয় — দেখুন ভলিউম।