আপনি খুব কনফিউজড হতে পারেন যদি একটি লিনাক্স টার্মিনাল আপনাকে "cannot connect to the Docker daemon" ত্রুটি ফেলে, কারণ সম্ভবত ডকার ডিমন ইতিমধ্যে রানিং থাকলে আপনি সেটি দেখেন। আপনি যদি নিশ্চিত করতে চান যে এটি রানিং, তবে আপনি পাজলড হবেন যখন জানবেন যে এই ত্রুটির ডিমন সার্ভিস রানিং না থাকার সাথে কোনো সম্পর্ক নেই। এটি অধিকাংশ তাদের দিকে ফেলা হয় যারা নিজেদের Docker গ্রুপে অ্যাড করেনি।
Docker লিনাক্স সিস্টেমে একটি আলাদা ইউজার গ্রুপ ইস্যু করে, এবং যাদের ইউজার অ্যাকাউন্ট সেটিতে অ্যাড করা নেই, তারা সেটির সাথে কানেক্ট করতে পারবেন না। মনে রাখবেন যে একটি ইউজার অ্যাকাউন্টকে Docker গ্রুপে যোগ করা ফাংশনালি রুট ইকুিভ্যালেন্ট যেহেতু ডিমন সবসময় রুট ইউজার হিসেবে রান করে। এটি একটি সিঙ্গেল-ইউজার Ubuntu Server সিস্টেমে এক্সপেক্টেড হতে পারে, কিন্তু এটি Архи, Fedora বা Debian-এ Docker রান করার জন্য যারা রান করেন তাদের জন্য খেয়াল রাখার বিষয়।
মেথড ১: Docker সার্ভিস স্ট্যাটাস চেক করুন
যদিও এটি প্রায়শই রানিং, আপনাকে চেক করতে হবে ডকার সার্ভিস বর্তমানে রানিং কিনা। একটি টার্মিনাল উইন্ডোতে, নরমাল ইউজার হিসেবে systemctl status docker.service রান করুন। আপনাকে ডকার ডিমনের PID নম্বর সম্পর্কে কিছু ইনফরমেশন পেতে হবে। আপনি যদি না পান, তবে আপনাকে সার্ভিস রিস্টার্ট করতে হবে।
আপনি যদি এটি রিস্টার্ট করে থাকেন, তবে যা করার চেষ্টায় আপনাকে "cannot connect to the Docker daemon" ত্রুটি দেওয়া হয়েছিল সেটি করার চেষ্টা করুন। যদি এখন কাজ করে, তবে আপনার শুধু সার্ভিস রানিং নাই এবং আপনাকে অন্য কিছু চিন্তা করতে হবে না সেটি কেন রানিং ছিল না সেটি বাদে। দুর্ভাগ্যবশত, অধিকাংশ কেসে এটি কাজ করে না তাই সেই সিচুয়েশনগুলোতে আপনাকে এগিয়ে যেতে হবে।
মেথড ২: ইউজারকে Docker গ্রুপে যোগ করুন
কমান্ড লাইন থেকে docker info রান করুন, যা সাধারণত আপনাকে আবার "cannot connect to the Docker daemon" ত্রুটি দেবে।
যদি এই কেস হয়, তবে আপনাকে sudo groupadd docker; sudo usermod -aG docker $USER রান করতে হবে নিজেকে প্রপার গ্রুপে যোগ করতে। যদি এটি ত্রুটি দেয় কারণ আপনার usermod নেই, তবে আপনি কমান্ডটি মডিফাই করে sudo groupadd docker; sudo gpasswd -a $USER docker হিসেবে রান করতে পারেন, তবে এটি সাধারণত ইস্যু হয় না কারণ অধিকাংশ কমার্শিয়াল-গ্রেড লিনাক্স ডিস্ট্রিবিউশন একই টুলসেটের সাথে কাজ করে। যেকোনো কেসে, newgrp docker রান করুন যাতে আপনি নতুন docker গ্রুপে লগইন করতে পারেন যদি আপনি ইতিমধ্যে না থাকেন।
মনে রাখবেন এটি সবসময় সেই ইউজারকে অ্যাড করবে যেন আপনি বর্তমানে লগইন করা অবস্থায় আছেন, যা অধিকাংশ মানুষের সিস্টেমে যা একাধিক অ্যাকাউন্ট নেই রুট অ্যাকাউন্ট ছাড়া তাতে খুব বড় সমস্যা নয়। যেহেতু আপনার অ্যাডমিনিস্ট্রেটিভ এক্সেস কিড করা আছে ফর দ টাইম বেইং, sudo chgrp docker /usr/bin docker; sudo chgrp docker /var/run/docker.sock রান করুন ডকার সকেট এবং কমান্ডের পারমিশন ফিক্স করতে। সাধারণত, সকেট ফাইল শুধু রুট ইউজারের অধিকার থাকে তাই এটি সেটি সংশোধন করবে।
এটি চালানোর পর, আপনার কোনো সমস্যা নেই হওয়া উচিত কারণ এখন এটা একই গ্রুপে ব্রনচ করে যা আপনি পূর্বের কমান্ডে তৈরি করেছেন। আপনি টেস্ট করতে চাবেন ডকার sudo ছাড়া রান হচ্ছে কিনা, তাই টাইপ করুন docker run hello-world রেগুলার ইউজার হিসেবে নিশ্চিত করতে আপনি আর কোনো ত্রুটি পাচ্ছেন কিনা।
এই পয়েন্টে, খুব কম ইউজার আর কোনো ত্রুটি মেসেজ পাবেন। অধিকাংশ জিনিস এই পয়েন্টে সংশোধন হয়ে যাওয়া উচিত, কিন্তু আপনি যদি এখনও সমস্যা ফেস করেন তবে আপনি পুরোপুরি লগ আউট করতে চাইতে পারেন। অন্য একটি টার্মিনাল এমুলেটর উইন্ডো খোলার চেষ্টা করুন, কিন্তু যদি এটি কাজ না করে তবে কখনও কখনও সিস্টেমকে পুরোপুরি রিস্টার্ট করা সাহায্য করে যদি সেটি সম্ভব হয়।
মেথড ৩: ACL ব্যবহার করে Docker মেটাডেটা মডিফাই করুন
আপনি যদি এমন একটি গ্রুপে থাকতে না চান যা আপনাকে রুট ইউজার মতো করে তোলে, তবে আপনি সকেট ফাইলকে শুধু নির্দিষ্ট পারমিশনের সাথে কাজ করতে সেট করতে পারেন। আপনি gpasswd প্রসেস ইগনোর করতে পারেন আপনি এই পথে যেতে চাইলে। ফাইল সিস্টেম স্ক্যান করা տարբեր ACL এন্ট্রির জন্য একটি বर्डেন যারা সিকিউরিটি অডিট করে, কিন্তু এটি আপনাকে Docker গ্রুপ সম্পূর্ণরূপে এড়াতে দেয়।
আপনি যদি এই পথে যেতে চান, তবে আপনি রান করতে পারেন sudo setfacl -m user:name:rw /var/run/docker.sock user এবং name-কে উপযুক্ত লেবেলসহ রিপ্লেস করে। এটি ডকার সকেটে /var/run/docker.sock-এ এক্সেস পারমিশন দেয়, যা Debian এবং Ubuntu Server-এ কাজ করা উচিত।
লেখক সম্পর্কে

কেভিন অ্যারোজ
কেভিন অ্যারোজ একজন অত্যন্ত অভিজ্ঞ এবং জ্ঞানী প্রযুক্তি বিশেষজ্ঞ যিনি এক দশকের বেশি ইন্ডাস্ট্রি অভিজ্ঞতা রাখেন। তিনি মাইক্রোসফট সার্টিফাইড টেকনোলজি স্পেশালিস্ট (MCTS) সার্টিফিকেশন ধারণ করেন এবং লেটেস্ট টেক ডেভেলপমেন্টস নিয়ে আপডেট থাকতে গভীর আগ্রহ রাখেন। কেভিন টেক-রিলেটেড واسعة বিষয়ে বিস্তারিত লিখেছেন, যেন তাদের সফটওয়্যার ডেভেলপমেন্ট, সাইবারসিকিউরিটি এবং ক্লাউড কম্পিউটিং-এর মতো ক্ষেত্রে দক্ষতা এবং জ্ঞান প্রদর্শন করে। টেক ফিল্ডে তাঁর অবদান বিস্তৃতভাবে স্বীকৃত এবং সম্মানিত, এবং জটিল প্রযুক্তিগত ধারণাগুলো স্পষ্ট এবং সংক্ষিপ্তভাবে ব্যাখ্যা করার ক্ষমতার জন্য তিনি অত্যন্ত বিবেচনীয়।