কম্পিউটার টিউটোরিয়াল

[FIX] Docker Daemon-এ 'unix:///var/run/docker.sock'-এ সংযোগ করা যায় না সমস্যার সমাধান

Docker কন্টেইনার ব্যবহার করে অ্যাপ্লিকেশন তৈরি, ডিপ্লয় এবং রান করার ক্ষমতার কারণে দিন দিন জনপ্রিয় হচ্ছে। কন্টেইনার ডেভেলপারদের একটি অ্যাপ্লিকেশনকে এর সকল লাইব্রেরি এবং ডিপেনডেন্সিসহ প্যাকেজ করতে দেয় ডিপ্লয় করার আগে একটি পূর্ণ প্যাকেজ হিসেবে। Linux-এ Docker ইনস্টল করা আপেক্ষিকভাবে সহজ। আপনাকে শুধু টার্মিনালে কয়েকটি কমান্ড রান করতে হবে, এবং আপনি гот।

[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

যাইহোক, সফল ইনস্টলেশনের পরেও এটি সব ব্যবহারকারীর জন্য একসমান নাও হতে পারে। সবচেয়ে সাধারণ আ Bengali র এক: Cannot connect to the Docker daemon at (unix:///var/run/docker.sock. Is the docker daemon running?) এই এরর docker run, docker info, docker pull, docker stop ইত্যাদি কমান্ড রান করার সময় আসতে পারে।

Error: Cannot Connect to the Docker Daemon-এর কারণ কী?

অনেক ডেভেলপারদের অভিযোগ পাওয়ার পর, আমরা গভীরে গিয়ে কার্যকর সমাধান বের করেছি। এই এরর ট্রিগার করার কিছু কারণ:

  • Docker daemon চালু নেই।
  • Docker ক্লিনলি শাটডাউন হয়নি।
  • Docker সার্ভিস শুরু করার জন্য রুট প্রিভিলেজের অভাব।

এখন আপনার সমস্যার কারণ সম্পর্কে základní ধারণা আছে, চলুন আপনার জন্য উপলব্ধ বিভিন্ন সমাধান দেখি।

সমাধান ১: systemctl দিয়ে Docker সার্ভিস শুরু করুন

আপনি যদি Ubuntu-এ Docker-এর নতুন ইনস্টলেশন সম্পন্ন করেছেন বা আপনার PC রিবুট করেছেন, তবে Docker সার্ভিস চালু নেই এমন সম্ভাবনা বেশি। Docker daemon (dockerd) Docker-এর সিস্টেম সার্ভিস। এই সার্ভিস Docker অবজেক্টস যেন ইমেজ, কন্টেইনার, নেটওয়ার্ক, এবং ভলিউম হ্যান্ডেল করে এবং Docker API রিকোয়েস্ট শোনে।

Systemctl কমান্ড পুরনো SysV init সিস্টেমকে রিপ্লেস করেছে, এবং এটি Linux সিস্টেমে চলমান systemd সার্ভিস ম্যানেজ করে। আপনার সিস্টেমে systemctl না থাকলে চিন্তা নকরুন; নিচে বর্ণিত service কমান্ড ব্যবহার করুন।

নোট: এই মেথড শুধু তাদের জন্য কাজ করে যারা APT প্যাকেজ ম্যানেজার দিয়ে Docker ইনস্টল করেছেন। আপনি যদি SNAP দিয়ে Docker ইনস্টল করেছেন, সমাধান ৫ নিচে রেফার করুন।

  1. Terminal খুলুন এবং প্রথম কমান্ড এক্সিকিউট করুন - unmask docker।
sudo systemctl unmask docker

যদি আমরা Docker সার্ভিস শুরু করার চেষ্টা করি যখন docker মাস্কড থাকে, তবে আমরা 'Failed to start docker.service: Unit is masked.' এরর পেতে পারি। Mask ডিজেবল করার একটি আরও রবাস্ট ভার্সন মনে করা হয়। যখন একটি ইউনিট ফাইল মাস্কড থাকে, ইউনিটি 'dev/null'-এর সাথে লিংক করা থাকে। সকল ইউনিট ফাইলের স্টেট লিস্ট করতে কমান্ড - '$ systemctl list-unit-files' ব্যবহার করুন।

২. একবার docker ইউনিট unmasked হলে, আমরা systemctl কমান্ড দিয়ে docker daemon শুরু করতে পারি। docker daemon ডকার অবজেক্টস যেন Images, Containers, এবং Docker API রিকোয়েস্ট ম্যানেজ করে। কমান্ড লাইনে নিচের কমান্ড এক্সিকিউট করুন।

systemctl start docker
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

৩. যাচাই করতে docker সার্ভিস সক্রিয় এবং চলছে কিনা। আমরা systemctl status কমান্ড ব্যবহার করব, যা নির্দিষ্ট সার্ভিসের বর্তমান স্ট্যাটাস দেখায়। আপনার টার্মিনালে নিচের কমান্ড এক্সিকিউট করুন।

systemctl status docker
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

উপরের ছবি থেকে আমরা দেখতে পাচ্ছি docker সক্রিয় এবং চলছে।

সমাধান ২: 'Failed Docker Pull' ক্লিন করুন এবং Docker সার্ভিস শুরু করুন

অনেক কেসে আপনি কন্টেইনার পুল করার সময় অপ্রত্যাশিতভাবে Docker বন্ধ করতে পারেন। এসব পরিস্থিতিতে docker.service এবং docker.socket ফাইলগুলো মাস্কড হয়ে যায়। Docker.socket একটি ফাইল যেটি '/var/run/docker.sock'-এ অবস্থিত এবং Docker daemon-এর সাথে যোগাযোগের জন্য ব্যবহৃত হয়। আমাদের unmask করতে হবে দুটি ইউনিট ফাইল - docker.service এবং docker.daemon Docker শুরু করার আগে।

  1. Terminal লঞ্চ করুন এবং নিচের কমান্ডগুলো এক্সিকিউট করুন:
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

আপনি যদি কমান্ডগুলো এক্সিকিউট করার পরেও এরর পান, তবে আমাদের Containerd ডিরেক্টরির ফাইলগুলো ডিলিট করতে হবে Docker আবার শুরু করার আগে। Containerd Docker 1.11-এ আন্ট্রোডিউস করা একটি ফিচার যা Docker ইমেজের লাইফ-সাইকেল ম্যানেজ করতে ব্যবহৃত হয়।

২. Terminal খুলুন এবং নিচের কমান্ডগুলো এক্সিকিউট করুন। নিশ্চিত করুন আপনি রুট পাসওয়ার্ড জানেন যেহেতু কমান্ডগুলো এক্সিকিউট করার জন্য elevada privileges দরকার।

sudo su
service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

সমাধান ৩: Dockerd (Docker Daemon) সার্ভিস শুরু করুন

Dockerd হলো Docker daemon যা Docker APIs শোনে এবং বিভিন্ন Docker অবজেক্ট ম্যানেজ করে। Dockerd ব্যবহার করা যায় '$ systemctl start docker' কমান্ডের বিকল্প হিসেবে যা Docker daemon শুরু করতে ব্যবহৃত হয়।

  1. Terminal খুলুন এবং নিচের কমান্ড এক্সিকিউট করে dockerd শুরু করুন:
sudo dockerd
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

সমাধান ৪: Service কমান্ড দিয়ে Docker শুরু করুন

আপনি যদি SysV init সিস্টেম ব্যবহার করেন, তবে systemctl কমান্ড আপনার জন্য কাজ করবে না। আমাদের service কমান্ড ব্যবহার করতে হবে docker daemon শুরু করতে।

  1. Terminal লঞ্চ করুন এবং নিচের কমান্ডগুলো এক্সিকিউট করুন:
sudo service --status-all
sudo service docker start
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

সমাধান ৫: Snap দিয়ে Docker সার্ভিস শুরু করুন

আপনি যদি Snap প্যাকেজ ম্যানেজার দিয়ে Docker ইনস্টল করেছেন, তবে docker daemon ম্যানেজ করতে snap কমান্ড ব্যবহার করতে হবে।

সাধারণত, Snap তাদের সার্ভিসগুলো অটোমেটিকলি ম্যানেজ করে। যাইহোক, এই এরর মতো পরিস্থিতিতে, এটি ম্যানুয়াল ইন্টারভেনশন চায়। snap কমান্ডের সাথে আপনি কিছু আর্গুমেন্ট ব্যবহার করতে পারেন যেন stop, start, এবং restart। আমাদের কেসে, আমরা start প্যারামিটার ব্যবহার করব।

  1. Terminal খুলুন এবং নিচের কমান্ড এক্সিকিউট করুন Docker শুরু করতে।
sudo snap start docker
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

২. নিচের কমান্ড এক্সিকিউট করুন যাচাই করতে Docker সার্ভিস শুরু হয়েছে কিনা।

sudo snap services

এটি সকল চলমান snap সার্ভিস লিস্ট করবে।

[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

যদি উপরের কমান্ডগুলো আপনার জন্য কাজ না করে, docker:home plug কানেক্ট করার চেষ্টা করুন যেহেতু এটি ডিফল্টভাবে অটো-কানেক্টেড নয়। একবার হলে, Docker সার্ভিস শুরু করুন।

৩. Terminal লঞ্চ করুন এবং নিচের কমান্ডগুলো রান করুন:

sudo snap connect docker:home :home
sudo snap start docker
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

সমাধান ৬: রুট প্রিভিলেজ ছাড়া ব্যবহারকারীদের জন্য Docker শুরু করুন

এররটি উন্নত প্রিভিলেজের অভাব এবং ব্যবহারকারীর 'unix:///var/run/docker.sock'-এ অ্যাক্সেস নেই এর করণও হতে পারে। সৌভাগ্যক্রমে একটি ওয়ার্কঅরাউন্ড আছে। আমরা Docker Host ভেরিয়েবল এক্সপোর্ট করব localhost-এ পোর্ট ২৩৭৫ দিয়ে।

  1. Terminal খুলুন এবং নিচের কমান্ড রান করুন:
export DOCKER_HOST=tcp://localhost:2375
[FIX] Docker Daemon-এ  unix:///var/run/docker.sock -এ সংযোগ করা যায় না সমস্যার সমাধান

সমাধান ৭: Docker পুনরায় ইনস্টল করুন

যদি উপরের সমাধানগুলো এরর সমাধান না করে, তবে খুব সম্ভব যে আপনার ইনস্টলেশন এরর আছে। আপনার Linux সিস্টেমে সঠিকভাবে Docker ইনস্টল করতে, Docker অফিসিয়াল ওয়েবসাইট থেকে ধাপগুলো ফলো করুন।


ত্রিভুজ No
  1. OpenCV-এ C++ ব্যবহার করে ইমেজের ব্রাইটনেস কমানো

  2. পাওয়ারশেল-এ Invoke-WebRequest ব্যবহার করে ওয়েবসাইট লিংক বের করা

  3. ভুলে যাওয়া উইন্ডোজ ৮ পিন, পিকচার, বা টেক্সট পাসওয়ার্ড রিসেট করুন – ধাপে ধাপে গাইড

  4. উইন্ডোজ, ম্যাক এবং অনলাইনে গুগল আর্থ রেকর্ড করার সম্পূর্ণ গাইড