Skip to content

Rootless Docker (রুটলেস ডকার)

সাধারণত ডকার ডিমন (Docker Daemon) রুট (root) প্রিভিলেজ নিয়ে রান করে। এটি একটি সিকিউরিটি রিস্ক, কারণ যদি কোনো হ্যাকার কোনোভাবে কন্টেইনার কম্প্রোমাইজ করতে পারে, তবে সে পুরো হোস্ট মেশিনের রুট এক্সেস পেয়ে যেতে পারে। এই সমস্যা সমাধানের জন্য ডকার নিয়ে এসেছে Rootless Mode

১. রুটলেস মোড কি?

রুটলেস মোড এমন একটি কনফিগারেশন যেখানে ডকার ডিমন এবং কন্টেইনারগুলো সম্পূর্ণভাবে একজন সাধারণ ইউজারের (non-root) অধীনে রান করে। এতে হোস্টের রুট প্রিভিলেজের প্রয়োজন হয় না।


২. কেন এটি ব্যবহার করবেন? (Security Benefits)

  • Attack Surface Reduction: যদি ডকার ডিমন কম্প্রোমাইজ হয়, তবে হ্যাকার শুধুমাত্র ওই ইউজারের ডেটা পাবে, পুরো সার্ভারের নিয়ন্ত্রণ পাবে না।
  • Multi-tenant isolation: একই সার্ভারে একাধিক ইউজার রুট এক্সেস ছাড়াই ডকার ব্যবহার করতে পারে।
  • Compliance: অনেক এন্টারপ্রাইজ এনভায়রনমেন্টে সিকিউরিটির কারণে রুট রান করা নিষিদ্ধ থাকে, সেখানে এটি একমাত্র উপায়।

৩. ইন্সটলেশন (Installation)

রুটলেস মোড সেটআপ করার জন্য কিছু রিকোয়ারমেন্ট আছে (যেমন: newuidmap এবং newgidmap টুলস)।

সেটআপ স্ক্রিপ্ট রান করা:

bash
curl -fsSL https://get.docker.com/rootless | sh

পাথ সেট করা:

ইন্সটলেশনের পর আপনাকে আপনার .bashrc বা .zshrc ফাইলে নিচের পাথগুলো যোগ করতে হবে:

bash
export DOCKER_HOST=unix:///run/user/1000/docker.sock

৪. ইউজার নেমস্পেস ম্যাপিং (User Namespace Mapping)

রুটলেস মোড মূলত User Namespaces টেকনোলজি ব্যবহার করে। এর ফলে কন্টেইনারের ভেতর ইউজারকে root দেখালেও আসলে হোস্ট মেশিনে সে একজন সাধারণ ইউজার হিসেবেই কাজ করে। এটি ডকারের আইসোলেশনকে আরও শক্তিশালী করে।


৫. সীমাবদ্ধতা (Limitations)

রুটলেস মোড অনেক বেশি সুরক্ষিত হলেও এর কিছু সীমাবদ্ধতা আছে:

  • Privileged Ports: আপনি ১০২৪ এর নিচের পোর্টগুলো (যেমন: 80, 443) সরাসরি ব্যবহার করতে পারবেন না।
  • Storage Drivers: কিছু স্টোরেজ ড্রাইভার (যেমন: overlay2) পুরানো কার্নেলে রুটলেস মোডে কাজ নাও করতে পারে।
  • Cgroups: রিসোর্স লিমিট (CPU/Memory) সেট করার জন্য অতিরিক্ত কনফিগারেশনের প্রয়োজন হতে পারে।

৬. পারফরম্যান্স এর ওপর প্রভাব

সাধারণত পারফরম্যান্সে খুব বেশি বড় প্রভাব পড়ে না। তবে নেটওয়ার্কিং অ্যাপ্লিকেশনের ক্ষেত্রে কিছুটা বাড়তি ওহোয়াইটহেড (Overhead) থাকতে পারে কারণ এটি slirp4netns ব্যবহার করে নেটওয়ার্ক প্যাকেট হ্যান্ডেল করে।

সারাংশ

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

Released under the MIT License.