কখনও ডকার চালানোর চেষ্টা করেছেন এবং হঠাৎ "ডকার ডেমনের সাথে সংযোগ করতে পারবেন না সম্মুখীন হয়েছেন "ত্রুটি? এটি সবচেয়ে হতাশাজনক সমস্যাগুলির মধ্যে একটি যা আপনি শুরু করার আগেই আপনাকে থামাতে পারে। ডকার ডেমন ব্যাকগ্রাউন্ডে শান্তভাবে চলে, যা কন্টেইনার শুরু করা এবং বন্ধ করা থেকে শুরু করে ছবি পরিচালনা, স্তর তৈরি করা এবং আপনার সমস্ত ডকার কমান্ড যেমন docker run প্রক্রিয়াকরণ সবই পরিচালনা করে। , docker ps , ইত্যাদি। যদি আপনার টার্মিনাল এটিতে পৌঁছাতে না পারে তবে কিছুই কাজ করে না।
এই নির্দেশিকায়, আমি ব্যাখ্যা করব কেন এই ত্রুটিটি ঘটে এবং ডকারকে আবার মসৃণভাবে চালানোর জন্য আপনাকে সহজ, ব্যবহারিক সমাধান দেখাব।
সূচিপত্র
ডকার ডেমন কি করে তা বোঝা
ডকার ডেমন (ডকার্ড) হল একটি ব্যাকগ্রাউন্ড পরিষেবা যা কন্টেইনার, ছবি, নেটওয়ার্কিং এবং স্টোরেজ পরিচালনার জন্য দায়ী। আপনি যখন ডকার কমান্ডগুলি চালান, তখন CLI নিজে এই কাজগুলি সম্পাদন করে না; পরিবর্তে, এটি ডেমনকে অনুরোধ পাঠায়। লিনাক্স সিস্টেমে, এই যোগাযোগ “/var/run/docker.sock”-এ অবস্থিত একটি ইউনিক্স সকেটের মাধ্যমে হয়। ডকার ডেস্কটপ বা WSL পরিবেশে, CLI একটি নামযুক্ত পাইপ বা ভার্চুয়াল মেশিন দ্বারা পরিচালিত একটি সকেটের মাধ্যমে ডেমনের সাথে যোগাযোগ করে৷
যদি CLI ডেমনের সাথে যোগাযোগ করতে না পারে, তাহলে আপনি "unix:///var/run/docker.sock-এ ডকার ডেমনের সাথে সংযোগ করতে পারবেন না। ডকার ডেমন কি চলছে? এর মতো ত্রুটি পাবেন "
এটি প্রায়শই এই কারণগুলির একটির কারণে ঘটে:
- ডকার পরিষেবা চলছে না৷ ৷
- আপনার ব্যবহারকারীর ডকার সকেট অ্যাক্সেস করার অনুমতি নেই।
- ডকার ভুল প্রসঙ্গ ব্যবহার করছে।
- ডকার সকেট অনুপস্থিত বা ভুল অনুমতি আছে।
- পরিবেশ ভেরিয়েবল যেমন
DOCKER_HOSTভুল কনফিগার করা হয়েছে৷ - প্ল্যাটফর্ম-নির্দিষ্ট সমস্যা (ডকার ডেস্কটপ, WSL, বা দূরবর্তী ডেমন)।
এই কমিউনিকেশন চেইনের কোন অংশটি ভাঙা হয়েছে তা চিহ্নিত করা সমস্যাটি সঠিকভাবে সমাধানের চাবিকাঠি।
আপনার ব্যবহারকারীর অনুমতি পরীক্ষা করুন
লিনাক্স সিস্টেমে, ডকার একটি ইউনিক্স সকেটের মাধ্যমে যোগাযোগ করে যা রুট ব্যবহারকারীর মালিকানাধীন। sudo ছাড়া এটি অ্যাক্সেস করতে সক্ষম হতে ব্যবহারকারীদের অবশ্যই ডকার গ্রুপের অন্তর্ভুক্ত হতে হবে .
সকেট অনুমতি যাচাই করতে, নিম্নলিখিত কমান্ডটি চালান:
ls -l /var/run/docker.sock
এই আউটপুটটি আমাদের বলে যে সকেটটি রুটের মালিকানাধীন, এবং শুধুমাত্র ডকার গ্রুপের ব্যবহারকারীরা এটি থেকে পড়তে বা লিখতে পারবেন। যদি আপনার ব্যবহারকারীর অ্যাকাউন্ট এই গোষ্ঠীর অংশ না হয়, ডকার অ্যাক্সেস অস্বীকার করবে এবং কমান্ডগুলি কার্যকর করতে ব্যর্থ হবে। এই সমস্যাটি সমাধান করতে, আপনাকে আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করতে হবে:
sudo usermod -aG docker $USER যদি ডকার গ্রুপটি বিদ্যমান না থাকে তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি তৈরি করতে পারেন:
sudo groupadd docker ডকার পরিষেবা চলছে তা যাচাই করুন
আরেকটি খুব সহজ কিন্তু গুরুত্বপূর্ণ সমস্যা হল যে ডকার মোটেও চলছে না। যদি ডকার ডেমন বন্ধ করা হয়, ডকার CLI এর সাথে সংযোগ করার জন্য কিছুই নেই, যার ফলে বিবৃত ত্রুটি দেখা দেয়। ডকার পরিষেবার বর্তমান অবস্থা পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি চালান:
systemctl status docker আমাদের ক্ষেত্রে, ডকার সক্রিয় এবং সফলভাবে চলছে। যাইহোক, যদি আউটপুট নিষ্ক্রিয় (মৃত) বা ব্যর্থ হওয়ার মতো একটি অবস্থা দেখায়, তাহলে এর মানে ডকার পরিষেবা চলছে না৷
ম্যানুয়ালি ডকার শুরু করতে, আপনি এই কমান্ডটি চালাতে পারেন:
sudo systemctl start docker আপনি যদি চান যে যখনই আপনার সিস্টেম বুট হয় তখনই ডকার স্বয়ংক্রিয়ভাবে শুরু হয়, নিম্নলিখিত কমান্ড ব্যবহার করে এটি সক্রিয় করুন:
sudo systemctl enable docker ডকার ডেমন ম্যানুয়ালি শুরু করুন (ডকার্ড)
ন্যূনতম সার্ভার বা কাস্টম লিনাক্স সেটআপে, ডকার সিস্টেমড দ্বারা পরিচালিত নাও হতে পারে। এই পরিবেশে, ডকার ইন্সটল হওয়া সত্ত্বেও ডকার ডেমন স্বয়ংক্রিয়ভাবে শুরু নাও হতে পারে। ডেমন শুরু করতে পারে কিনা তা পরীক্ষা করতে, এটি নিজে চালানোর চেষ্টা করুন:
sudo dockerd আউটপুট সাবধানে নিরীক্ষণ. যদি কিছু ভুল হয়ে যায়, ডকার সাধারণত সমস্যাটি ব্যাখ্যা করে একটি পরিষ্কার ত্রুটি বার্তা প্রিন্ট করে, যেমন স্টোরেজ ড্রাইভার সমস্যা, অনুমতি ত্রুটি, বা নেটওয়ার্ক বিরোধ।
ডকার ইউনিক্স সকেট পরিদর্শন এবং ঠিক করুন
ডকার সিএলআই ইউনিক্স সকেট ব্যবহার করে ডকার ডেমনের সাথে যোগাযোগ করে। যদি এই সকেটটি অনুপস্থিত থাকে, দূষিত হয় বা ভুল অনুমতি থাকে তবে ডকার সংযোগ করতে পারে না। আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সকেট বিদ্যমান কিনা তা পরীক্ষা করতে পারেন:
ls /var/run/docker.sock
ফাইলটি অনুপস্থিত থাকলে, এর অর্থ সাধারণত ডকার ডেমন চলছে না, অথবা ডকার স্টার্টআপের সময় সকেট তৈরি করতে ব্যর্থ হয়। সেই ক্ষেত্রে, এটিকে পুনরায় তৈরি করতে আপনাকে ডকার পুনরায় চালু করতে হবে:
sudo systemctl restart docker যদি সকেটটি বিদ্যমান থাকে কিন্তু ভুল অনুমতি থাকে তবে নিম্নলিখিত কমান্ডগুলি ব্যবহার করে সেগুলি ঠিক করুন:
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock
ডকার প্রসঙ্গ এবং এনভায়রনমেন্ট ভেরিয়েবল যাচাই করুন
কখনও কখনও ডকার ডেমনের সাথে সংযোগ করতে পারে না কারণ এটি ভুল শেষ পয়েন্টের দিকে নির্দেশ করে। আপনার DOCKER_HOST হলে এটি ঘটতে পারে এনভায়রনমেন্ট ভেরিয়েবল ভুলভাবে সেট করা হয়েছে অথবা যদি আপনার সক্রিয় ডকার প্রসঙ্গ একটি দূরবর্তী বা অনুপলব্ধ পরিবেশের দিকে নির্দেশ করে।
এনভায়রনমেন্ট ভেরিয়েবল চেক করুন
কোন ডকার-সম্পর্কিত পরিবেশ ভেরিয়েবল সেট করা আছে কিনা তা দেখতে নিম্নলিখিত কমান্ডটি চালান:
env | grep DOCKER
আপনি যদি DOCKER_HOST=tcp://localhost:2375 এর মত কিছু দেখতে পান , এর মানে ডকার একটি দূরবর্তী ডেমনের দিকে নির্দেশ করছে যা নিষ্ক্রিয় বা অনুপস্থিত হতে পারে। আপনি পরিবর্তনশীল আনসেট করে সাময়িকভাবে এটি ঠিক করতে পারেন:
unset DOCKER_HOST এটিকে স্থায়ীভাবে অপসারণ করতে, এটিকে শেল কনফিগারেশন ফাইল যেমন “~/.bashrc”, “~/.zshrc”, এবং “/etc/environment” থেকে পরিষ্কার করুন।
অ্যাক্টিভ ডকার প্রসঙ্গ চেক করুন
ডকার প্রসঙ্গ নির্ধারণ করে যে সিএলআই কোন ডেমনের সাথে যোগাযোগ করে। আপনি উপলব্ধ প্রসঙ্গ তালিকা করতে পারেন এবং সক্রিয় একটি দেখতে পারেন:
docker context ls
একটি তারকাচিহ্ন (*) বর্তমানে সক্রিয় প্রসঙ্গ নির্দেশ করে। যদি প্রসঙ্গটি একটি অনুপলব্ধ পরিবেশের দিকে নির্দেশ করে, ডিফল্ট স্থানীয় ডেমনে ফিরে যান:
docker context use default প্ল্যাটফর্ম-নির্দিষ্ট সমস্যা
কিছু সংযোগ সমস্যা শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে ঘটে। উদাহরণস্বরূপ, Windows বা macOS-এ ডকার ডেস্কটপ একটি লাইটওয়েট VM-এর ভিতরে ডেমন চালায়। যদি VM শুরু করতে ব্যর্থ হয়, Docker CLI সংযোগ করতে পারবে না। এই সমস্যাটি সমাধান করতে, আপনার ডকার ডেস্কটপ পুনরায় চালু করুন।
একইভাবে, WSL এর সাথে ডকার ব্যবহার করার সময়, ডেমন একটি লিনাক্স পরিবেশে চলে। নিশ্চিত করুন যে WSL সঠিকভাবে ইনস্টল এবং চলছে:
wsl --list --running
ডকার ডেমন WSL থেকে অ্যাক্সেসযোগ্য না হলে, ডকার ডেস্কটপ পরিষেবা পুনরায় চালু করা বা নির্দিষ্ট WSL বিতরণ প্রায়শই সমস্যার সমাধান করে।
ভবিষ্যতে এই ত্রুটি এড়ানোর জন্য টিপস
ভবিষ্যতে "ডকার ডেমনের সাথে সংযোগ করা যাবে না" ত্রুটিগুলি এড়াতে, সর্বদা নিশ্চিত করুন যে ডকার পরিষেবা চলছে, বিশেষ করে সিস্টেম আপডেটের পরে, এবং sudo ব্যবহার করা এড়িয়ে যেতে আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করুন। . নিয়মিতভাবে আপনার সক্রিয় ডকার প্রসঙ্গ পরীক্ষা করুন, বিশেষ করে মেশিন, WSL ডিস্ট্রিবিউশন বা ডকার ডেস্কটপ ব্যবহার করার পরে, এবং নির্দিষ্ট দূরবর্তী ডেমনের সাথে সংযোগ না করা পর্যন্ত DOCKER_HOST সেট করা এড়িয়ে চলুন, কারণ ভুল কনফিগার করা ভেরিয়েবল CLI কমান্ডগুলিকে ভুল নির্দেশ করতে পারে। উপরন্তু, journalctl -u docker.service ব্যবহার করে ডেমন লগ নিরীক্ষণ করুন সমস্যা তাড়াতাড়ি ধরতে।