🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

কমান্ড চালানোর সময় ডকার অনুমতি অস্বীকার করা ত্রুটি কীভাবে ঠিক করবেন

⏱️2 min read  ·  397 words

ত্রুটিডকার ডেমন সকেটের সাথে সংযোগ করার চেষ্টা করার সময় অনুমতি অস্বীকার করা হয়েছে মানে আপনার ব্যবহারকারীর ডকারের সাথে কথা বলার অনুমতি নেই। এছাড়াও পাত্রে এবং ভলিউমের সাথে অনুমতি সংক্রান্ত সমস্যা রয়েছে। এখানে প্রতিটি ঠিক কিভাবে.

ত্রুটি 1: ডকার ডেমনের সাথে সংযোগ করার অনুমতি অস্বীকার করা হয়েছে

# The error
docker ps
# Got permission denied while trying to connect to the Docker daemon
# socket at unix:///var/run/docker.sock

# Cause: your user isn't in the 'docker' group, so it can't
# access the Docker socket (which is root-owned)

ঠিক 1: ডকার গ্রুপে আপনার ব্যবহারকারীকে যুক্ত করুন

# Add your user to the docker group
sudo usermod -aG docker $USER

# Apply the change - log out and back in, OR:
newgrp docker

# Verify
docker ps   # should work now without sudo

# Check group membership
groups   # should include 'docker'

নিরাপত্তা নোট: ডকার গ্রুপের সদস্যদের কার্যকরভাবে রুট অ্যাক্সেস রয়েছে (ডকার হোস্ট ফাইল সিস্টেম মাউন্ট করতে পারে)। শুধুমাত্র বিশ্বস্ত ব্যবহারকারীদের যোগ করুন, এবং উন্নত নিরাপত্তার জন্য রুটলেস ডকার বিবেচনা করুন।

ফিক্স 2: রুটলেস ডকার (আরো সুরক্ষিত)

# Rootless Docker runs the daemon as your user, avoiding the group issue
dockerd-rootless-setuptool.sh install

# Set the socket for your user
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

# Add to your shell config to persist
echo 'export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock' >> ~/.bashrc

ত্রুটি 2: একটি পাত্রের ভিতরে অনুমতি অস্বীকার করা হয়েছে

# Files created by a root-running container are owned by root,
# causing permission issues on mounted volumes

# 🐛 Container runs as root, creates root-owned files in your volume
docker run -v $(pwd):/app myimage
# Files in ./app are now owned by root - you can't edit them

# ✅ Run the container as your user
docker run -u $(id -u):$(id -g) -v $(pwd):/app myimage

# ✅ Or set a non-root user in the Dockerfile
FROM node:20-alpine
RUN adduser -D appuser
USER appuser

ত্রুটি 3: ভলিউম মাউন্ট অনুমতি সমস্যা

# 🐛 Container can't write to a mounted volume

# ✅ Match the container user to the host file owner
docker run -u $(id -u):$(id -g) -v $(pwd)/data:/data myimage

# ✅ Or fix ownership on the host
sudo chown -R $(id -u):$(id -g) ./data

# ✅ For named volumes, initialize permissions in an entrypoint
# entrypoint.sh
chown -R appuser:appuser /data
exec "$@"

ত্রুটি 4: ডকার কম্পোজ অনুমতি সমস্যা

# docker-compose.yml - set the user for a service
services:
  app:
    image: myimage
    user: "${UID}:${GID}"   # pass host user/group
    volumes:
      - ./app:/app

# Run with your IDs
UID=$(id -u) GID=$(id -g) docker compose up

অনুমতি সমস্যা নির্ণয়

# Check who owns the Docker socket
ls -l /var/run/docker.sock
# srw-rw---- 1 root docker ... /var/run/docker.sock
# Owned by root:docker - you need to be in the docker group

# Check the docker service is running
sudo systemctl status docker

# Inside a container, check what user you're running as
docker run myimage whoami

প্রায়শই জিজ্ঞাসিত প্রশ্ন

প্রশ্ন: ডকার গ্রুপে নিজেকে যুক্ত করার পরে কেন আমাকে লগ আউট করতে হবে?
A: লগইন এ গ্রুপ সদস্যপদ লোড হয়. পরেusermod -aG docker $USER, আপনার বর্তমান সেশনে এখনও নতুন গ্রুপ নেই। লগ আউট এবং ব্যাক ইন, অথবা রানnewgrp docker বর্তমান শেল এটি প্রয়োগ করতে.

প্রশ্ন: ডকার গ্রুপে আমার ব্যবহারকারীকে যুক্ত করা কি নিরাপদ?
উত্তর: এটি কার্যকরভাবে রুট-স্তরের অ্যাক্সেস মঞ্জুর করে (ডকার হোস্ট পাথকে রুট হিসাবে মাউন্ট করতে পারে)। এটি সুবিধাজনক কিন্তু একটি নিরাপত্তা বিবেচনা — শুধুমাত্র বিশ্বস্ত ব্যবহারকারীদের যোগ করুন। ভাল নিরাপত্তার জন্য, রুটলেস ডকার ব্যবহার করুন, যা আপনার ব্যবহারকারী হিসাবে ডেমন চালায়।

প্রশ্ন: কেন আমার ধারক দ্বারা তৈরি করা ফাইলগুলি রুটের মালিকানাধীন?
উত্তর: ডিফল্টরূপে, কন্টেইনারগুলি রুট হিসাবে চলে, তাই তারা মাউন্ট করা ভলিউমে তৈরি করা ফাইলগুলি রুট-মালিকানাধীন। আপনার ব্যবহারকারী হিসাবে কন্টেইনার চালান-u $(id -u):$(id -g), অথবা ডকারফাইলে একটি নন-রুট ব্যবহারকারীকে সংজ্ঞায়িত করুন।

প্রশ্ন: আমার কি ডকারের সাথে সুডো ব্যবহার করা উচিত?
উত্তর: এটি এড়িয়ে চলুন – সুডোর সাথে প্রতিটি কমান্ডের উপসর্গ করা অসুবিধাজনক এবং রুট-মালিকানাধীন ফাইল তৈরি করতে পারে। আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করে (বা রুটলেস ডকার ব্যবহার করে) অন্তর্নিহিত সমস্যাটি সমাধান করুন যাতে ডকার কমান্ডগুলি সুডো ছাড়াই কাজ করে।

প্রশ্ন: আমি কীভাবে ভলিউম অনুমতির সমস্যাগুলি সম্পূর্ণরূপে এড়াতে পারি?
উত্তর: আপনার হোস্ট ব্যবহারকারী (-u $(id -u):$(id -g)), আপনার ডকারফাইলে একজন ব্যবহারকারীকে সংজ্ঞায়িত করুন এবং একটি এন্ট্রিপয়েন্ট স্ক্রিপ্টে মালিকানা পরিচালনা করুন। হোস্ট এবং কন্টেইনারের মধ্যে সামঞ্জস্যপূর্ণ ব্যবহারকারী আইডি বেশিরভাগ সমস্যা প্রতিরোধ করে।

উপসংহার

ডকার অনুমতি ত্রুটি কয়েকটি স্বাদে আসে। ক্লাসিক “ডেমন সকেটের সাথে সংযোগ করার অনুমতি অস্বীকার করা হয়েছে”দ্বারা সংশোধন করা হয়েছে৷ আপনার ব্যবহারকারীকে ডকার গ্রুপে যোগ করা ( ) এবং লগ আউট/ইনsudo usermod -aG docker $USER — বা আরও ভাল, উন্নত নিরাপত্তার জন্য রুটলেস ডকার ব্যবহার করে। কন্টেইনারগুলির ভিতরে এবং ভলিউম সহ অনুমতি সংক্রান্ত সমস্যাগুলি রুট হিসাবে চলমান কন্টেইনারগুলি থেকে আসে: তাদের ঠিক করুনআপনার ব্যবহারকারী () হিসাবে কন্টেইনারগুলি চালানো বা আপনার ডকারফাইলে একটি নন-রুট ব্যবহারকারীকে সংজ্ঞায়িত করা-u $(id -u):$(id -g). ডকার সকেট রুট-মালিকানাধীন এবং রুট-এ ডিফল্ট কন্টেইনারগুলি প্রায় প্রতিটি ডকার অনুমতি সমস্যা ব্যাখ্যা করে।. ডকার সকেট রুট-মালিকানাধীন এবং রুট-এ ডিফল্ট কন্টেইনারগুলি প্রায় প্রতিটি ডকার অনুমতি সমস্যা ব্যাখ্যা করে।

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা