ডঙ্কারটিকে স্ন্যাপ হিসাবে ইনস্টল করার পরে চালানোর সময় অনুমতি অস্বীকৃত


33

আমি সফটওয়্যার স্টোরের মাধ্যমে ডকার ইনস্টল করেছি, যা ইঙ্গিত দেয় যে এটি একটি স্ন্যাপ প্যাকেজ। যা আমার দ্বারা ঠিক আছে, তবে আমার ধারণা, কিন্তু দুর্ভাগ্যক্রমে, আমি চেষ্টা করেছি এমন প্রতিটি ডকার কমান্ড কার্যকর হয় না:

$ docker info
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/info: dial unix /var/run/docker.sock: connect: permission denied

কোন ধারনা কিভাবে এটা ঠিক করতে হবে?

সম্পাদনা: আমি ডকারের নিজস্ব সংগ্রহস্থলগুলি থেকে ডকার ইনস্টল করে আপাতত কাজ করেছি , যা ভবিষ্যতেও এই প্রশ্নটি ব্রাউজ করা লোকদের পক্ষে কাজ করতে পারে। যদিও আমি স্নাপ থেকে এটি চালাতে সক্ষম হতে চাই তাদের জন্য প্রশ্নটি খোলা রাখছি।


ডকার অফিসিয়াল স্টোর থেকে ডকার ইনস্টল করা হয়েছে। আমি যখন আমার ব্যবহারকারীকে dockerগ্রুপে যুক্ত করেছি , id -nGডকার দেখায় নি এবং কোনও dockerআদেশের ফলে অনুমতি ত্রুটি অস্বীকার করার ফলে ডকার ইতিমধ্যে চলছিল । লগ আউট এবং পিছনে কাজ করা হয়নি কারণ ডকার সিস্টেম প্রক্রিয়া চলতে থাকে। সিস্টেমটি পুনরায় বুট করা বা ডকার পুনরায় চালু করা ব্যবহারকারীকে ডকার গ্রুপের অংশ হিসাবে দেখিয়েছে এবং ডকার আদেশগুলি কার্যকর করার অনুমতি দিয়েছে। দ্রষ্টব্য: 0 প্রতিনিধি, মন্তব্য যুক্ত করতে পারবেন না।
সন্তোষ প্যাটেল

উত্তর:


33

এটি গিটহাব পৃষ্ঠা থেকে এসেছে, আপনি কি এই সঠিক পদক্ষেপগুলি ব্যবহার করে দেখেছেন:

If you are using Ubuntu Core 16,

Connect the docker:home plug as it's not auto-connected by default:

$ sudo snap connect docker:home

If you are using an alternative snap-compatible Linux distribution ("classic" in snap lingo), and would like to run docker as a normal user:

Create and join the docker group.

$ sudo addgroup --system docker
$ sudo adduser $USER docker
$ newgrp docker

You will also need to disable and re-enable the docker snap if you added the group while it was running.

$ sudo snap disable docker
$ sudo snap enable docker

থেকে Docker স্ন্যাপ GitHub


আমি পৃষ্ঠাটি দেখিনি, তাই লিঙ্কটির জন্য ধন্যবাদ। এটি বলেছিল যেহেতু আমি উবুন্টু কোর ব্যবহার করছি না, তাই আমার addgroupউত্তরগুলি অনুসারে আমি যা করেছি সে সম্পর্কে আমার যে নির্দেশনা রয়েছে তা অনুসরণ করতে হবে । দুর্ভাগ্যক্রমে আমি এখনকার কার্যক্ষম সিস্টেমটিকে আর স্পর্শ না করতে পছন্দ করব তবে অন্য কেউ যদি এটি চেষ্টা করে এবং কাজটি করার জন্য পরিচালনা করে তবে আমি এটি শুনতে পছন্দ করব।
ভিনসেন্ট

2
ডকার স্ন্যাপটি অক্ষম করা / সক্ষম করা আমার জন্য কৌশলটি করেছে, ধন্যবাদ
মনীষ কুমার

1
এটি উবুন্টু (ডেস্কটপ) 19.04 এও প্রযোজ্য।
নিক ব্রিন

31

ত্রুটি বার্তাটি আপনাকে বলেছে যে আপনার বর্তমান ব্যবহারকারী ডকার ইঞ্জিন অ্যাক্সেস করতে পারবেন না, কারণ আপনি ইঞ্জিনের সাথে যোগাযোগের জন্য ইউনিক্স সকেটে অ্যাক্সেসের অনুমতি অনুপস্থিত রয়েছেন।

অস্থায়ী সমাধান

sudoকমান্ডটি প্রতিটি সময় উন্নত অনুমতি সহ কার্যকর করতে কমান্ডটি ব্যবহার করুন ।

স্থায়ী (প্রস্তাবিত) সমাধান

বর্তমান ব্যবহারকারীকে দলে যোগ করুন docker। এটি টাইপ করে অর্জন করা যায়

sudo usermod -a -G docker $USER

গ্রুপ সদস্যপদ কার্যকর হওয়ার জন্য আপনাকে লগ আউট করতে হবে এবং আবার লগ ইন করতে হবে।

সূত্র: টেকওভারফ্লো.নেট


1
আপনার গুগল-ফু আমার চেয়ে ভাল, স্পষ্টতই। দুর্ভাগ্যক্রমে, এটি কাজ করে না। প্রথমত, dockerগ্রুপটির অস্তিত্ব ছিল না। আমি তখন প্রথমে দৌড়েছিলাম sudo addgroup dockerএবং তারপরে আপনার আদেশটি পুনরায় প্রেরণ করেছি, তারপরে লগ আউট করে আবার প্রবেশ করেছি in দুর্ভাগ্যক্রমে, প্রশ্নটিতে প্রদর্শিত ত্রুটিটি অব্যাহত রয়েছে ...
ভিনসেন্ট

2
@ আপনি ভুলে যান নি যে গ্রুপ পরিবর্তনগুলি তাত্ক্ষণিকভাবে সংঘটিত হয় না, তাই না? চেষ্টা করুন newgrp dockerবা লগ আউট এবং ইন-ইন
ADDB

না, দুঃখিত, এটি উল্লেখ করতে ভুলে গেছি - আপনি প্রতিক্রিয়া জানাতে গিয়ে আমি আমার মন্তব্য আপডেট করেছি :) রানিং groups vincentদেয়:vincent adm cdrom sudo dip plugdev lpadmin sambashare docker
ভিনসেন্ট

@ কেবলমাত্র রেফারেন্সের জন্য, আপনার ডকার ডেমন শুরু হয়েছে, তাই না? চেষ্টা করুন sudo /etc/init.d/docker statusবা sudo service docker statusএটি পরীক্ষা করার জন্য।
ADDB

: হুম, আমি ঐ কাজ এটা হচ্ছে একটি স্ন্যাপ কারণে মনে করি না paste.ubuntu.com/25219172 বলেন, ps cax | grep dockerdদিতে না 31034 ? Ssl 0:05 dockerd
ভিনসেন্ট

6

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

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


কেবল এটি উবুন্টু 18.04 এর জন্য কাজ করছে। অনেক ধন্যবাদ উদ্ধব গৌতম
সাব্বির

3
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock

পুনরায় আরম্ভের প্রয়োজন নেই এবং আরও সুরক্ষিত


1

আপনার ব্যবহারকারীকে ডকার গ্রুপে যুক্ত করা উচিত ( সরকারী দস্তাবেজগুলি দেখুন )।

আপনি sudoকমান্ডের সামনে যুক্ত করতে পারেন বা dockerএই আদেশটি ব্যবহার করে আপনি গ্রুপটিতে ব্যবহারকারী যুক্ত করতে পারেন :

sudo usermod -aG docker <USER>

আপনার গ্রুপ সদস্যপদটি পুনরায় মূল্যায়ন করা যাতে লগ আউট এবং লগ ইন করুন।


যেহেতু link লিঙ্কের সামগ্রীটি অদৃশ্য হয়ে যেতে পারে, দয়া করে এখানে সম্পর্কিত বিবরণ যুক্ত করুন।
চই টি। রেক্স

প্রয়োজন নেই, অন্য উত্তর ইতিমধ্যে দলে ব্যবহারকারীকে যুক্ত করার কথা উল্লেখ করেছে - এটি কোনও লাভ হয়নি। (এছাড়াও, কেন এটি স্ন্যাপ ইনস্টল করতে সহায়তা করে তবে নিয়মিত ইনস্টল করার জন্য নয়))
ভিনসেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.