উবুন্টুতে ডকারের অনুমতি সংক্রান্ত সমস্যার সমাধান কীভাবে?


35

আমি এখানে বর্ণিত হিসাবে ডকার ইনস্টল করেছি । আমি উবুন্টু ট্রাস্টি 14.04 (এলটিএস) (64-বিট) ব্যবহার করি । ইনস্টলেশন সময় সবকিছু ঠিকঠাক ছিল। কমান্ডটি $ sudo docker run -i -t ubuntu /bin/bashভালভাবে সম্পন্ন করে (আমি খোলা কনসোলে "প্রস্থান" টাইপ করার পরে But

`$ sudo docker run -d -P training/webapp python app.py`

পুনরায় প্রবেশ করে Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied

` docker info`

পুনরায় প্রবেশ করে Get http:///var/run/docker.sock/v1.12/info: dial unix /var/run/docker.sock: permission denied

কীভাবে সমাধান করবেন? আমি সমস্যাটি সম্পর্কে গুগল দিয়েছিলাম তবে আমি আমার মামলার কোনও সমাধান খুঁজে পাচ্ছি না।

উত্তর:


50

ডকার গ্রুপটি ইতিমধ্যে বিদ্যমান না থাকলে যুক্ত করুন।

$ sudo groupadd docker

সংযুক্ত ব্যবহারকারীকে ${USER}ডকার গ্রুপে যুক্ত করুন। আপনার পছন্দসই ব্যবহারকারীর সাথে মেলে ব্যবহারকারীর নাম পরিবর্তন করুন।

$ sudo gpasswd -a ${USER} docker

ডকার ডেমন পুনরায় চালু করুন:

$ sudo service docker restart # Or docker.io for older versions
# 18.04+ with snap:
$ sudo systemctl restart snap.docker.dockerd

গ্রুপ অনুমতিগুলি আপডেট করতে আপনার লগ আউট এবং আবার লগ ইন করা উচিত। এটি এড়ানোর জন্য, আপনি নীচে একটি সাব-শেইলে যেতে পারেন। অথবা এই প্রশ্নে উল্লিখিত অন্য যে কোনও কৌশল ব্যবহার করুন :

su - $USER

14
এটি কার্যকর করার জন্য আমাকে পুনরায় বুট করতে হয়েছিল।
অপ্রচলিত

8
পুনরায় বুট করতে হবে না, কেবল লগআউট এবং লগইন করুন।
অজয় গৌতম

2
লগআউট এটি করেছিল, এমনকি যখন exec $SHELLহয়নি। আমি জানতে আগ্রহী যে কোন পদ্ধতিতে লগ আউট করার মাধ্যমে সমস্যার সমাধান হয়েছে। এটি উইন্ডোজ নয়!
দার্ট এগারিজিয়াস

1
ফেডোরায়, আপনাকে প্রথমে সম্পাদনা করতে হবে /etc/selinux/configএবং লাগাতে হবে SELINUX=disabled, তারপরে লিনাক্স পুনরায় বুট করুন
জুনিয়র এম

1
দুর্দান্ত ব্যাখ্যা! তুমিই সেরা! :)
ফ্রান্সিস রডরিগস

5

আপনি যদি সেন্টোস বা রেডহ্যাট চালিয়ে যাচ্ছেন তবে আপনাকে প্রথমে চালনা করে SELinux অক্ষম করতে হবে:

setenforce 0

ইলেটির পরে SELinux পুনরায় চালু করতে বা চালাতে পুনরায় চালু করুন setenforce 1


4

আমারও একই সমস্যা ছিল, সেলিনাক্সের কারণে। সেলিনাক্স অপরাধী কিনা তা আপনি পরীক্ষা করে দেখতে পারেন:

  1. সেলিনাক্স অক্ষম করা হচ্ছে: setenforce 0
  2. পুনরায় চেষ্টা করা হচ্ছে

যদি সেলিনাক্স অক্ষম করা আপনার সমস্যার সমাধান করে তবে এটি এটিকে অক্ষম করার কোনও কারণ নয়:

  1. সেলিনাক্স সক্ষম করুন: setenforce 1
  2. সেলিনাক্স কনফিগারেশনে সকেট সংযোগের অনুমতি দিন: setsebool docker_connect_any true
  3. --priviledgedবিকল্প সহ আপনার ডকার ধারক চালান

3

আমি ধরে নিলাম, আপনার ব্যবহারকারীর নামটি ইতিমধ্যে ডকার গ্রুপে রয়েছে। এটি যাচাই করতে কমান্ডের নীচে ইস্যু করুন।

id -nG

আপনার প্রয়োজন নেই নীচের কমান্ড দ্বারা আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করতে হবে add

sudo groupadd docker
sudo usermod -aG docker $USER

আপনি যখন আদেশটি কার্যকর করেন sudo systemctl start docker, এটি একটি ডকার প্রক্রিয়া তৈরি করে। এই ডকার প্রক্রিয়াটিতে dockerdডেমন থ্রেড রয়েছে । কমান্ডটি ডিফল্ট docker.sockইউনিক্স সকেট তৈরি করে । docker.sockসকেট একটানা দ্বারা শোনার হয় dockerdডেমন থ্রেড। এটি আপনাকে docker.pidপ্রক্রিয়া সহ কার্নেল-স্তরের আইপিসি করতে পারে। এই ডকার সকেটটি ব্যবহার করতে সক্ষম হতে আপনার প্রক্রিয়া স্তর ( docker.pid) এবং ফাইল স্তর ( docker.sock) থেকে যথাযথ অনুমতি নেওয়া দরকার । সুতরাং, দুটি কমান্ড নীচে কার্যকর করা আপনার সমস্যা সমাধান করা উচিত। sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid


1

দ্বারা বর্তমান সংস্করণটি আমরা গ্রুপ জুড়তে প্রয়োজন docker
এটি ইনস্টলেশন দ্বারা স্বয়ংক্রিয়ভাবে বিদ্যমান। আপনি কমান্ডটি ব্যবহার করে পরীক্ষা করতে পারেন:

$ sudo groupadd docker
groupadd: group 'docker' already exists

সুতরাং ডকারকে নন-রুট ব্যবহারকারী হিসাবে পরিচালনা করার জন্য আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করুন তারপরে লগ আউট করুন এবং লগ ইন করুন যাতে আপনার গ্রুপের সদস্যপদটি পুনরায় মূল্যায়ন করা হয়:

$ sudo usermod -aG docker $USER
$ logout

আপনি যখন লগ ইন করবেন তখন এটি পরীক্ষা করতে

$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

আপনি এমনকি GROUP:dockerআপনার নতুন প্রাথমিক গোষ্ঠী হিসাবে ব্যবহার করতে বাধ্য করতে পারেন :

$ sudo chown "$USER":"docker" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
$ sudo usermod -g docker ${USER}
$ logout

আপনি যখন লগ ইন করবেন তখন এটি পরীক্ষা করতে

$ id
uid=1001(<user_name>) gid=999(docker) groups=999(docker),...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.