প্রশ্ন আমি কিভাবে সুডো ছাড়া ডকার ব্যবহার করতে পারি?


ডকারের ডকুমেন্টেশন পৃষ্ঠাগুলিতে, সমস্ত উদাহরণ কমান্ডগুলি ছাড়া দেখানো হয় sudo, এটার মত:

docker ps

উবুন্টুতে বাইনারি বলা হয় docker.io। এটি sudo ছাড়া কাজ করে না:

sudo docker.io ps

কিভাবে আমি ডকারকে কনফিগার করতে পারি যাতে সুডোর সাথে প্রতিটি ডকার কমান্ডের প্রিফিক্স করার প্রয়োজন হয় না?


637
2018-06-06 08:17


উত্স


Ufw সক্রিয় করতে ভুলবেন না;) - Rinzwind
উবুন্টু 14.04 এখানে এছাড়াও 'ডকার' বাইনারি। - anatoly techtonik
@ এনাটোলাইটেকটিক আমি উবুন্টু 14.04 এলটিএসে 'ডকার.ওও' এর পরিবর্তে 'ডকার' ব্যবহার করেছি। - Nabin
প্রস্তাবিত ইনস্টলেশন হয় না  ডিউবার ডিফল্ট ubuntu repos; পরিবর্তে এখানে নির্দেশাবলী ( docs.docker.com/engine/installation/linux/ubuntulinux ), ডকার রেপ ব্যবহার করে সুপারিশ। সমস্ত বিদ্যমান ডকার উপাদানগুলি সরাও, এবং যাচাই করুন যে আপনি সঠিক উত্স থেকে একটি পেয়েছেন: apt-cache policy docker-engine (apt url dockerproject.org হতে হবে) - michael
কিভাবে একটি উপনাম সম্পর্কে :? এই ভাবে, আপনি এখনও পাসওয়ার্ড সুরক্ষার সাথে sudo ব্যবহার করেন। ওরফে ডকার = "সুডো ডকার" - Andrej Panjkov


উত্তর:


দ্য ডকার ম্যানুয়াল এটি সম্পর্কে বলার আছে:

অ রুট এক্সেস প্রদান

ডকার ডেমন সর্বদা রুট ব্যবহারকারী হিসাবে চালায় এবং ডকার সংস্করণ 0.5.2 থেকে, ডকার ডেমনটি একটি টিসিপি পোর্টের পরিবর্তে ইউনিক্স সকেটে সংযুক্ত হয়। ডিফল্টরূপে ইউনিক্স সকেটটি ব্যবহারকারীর রুটের মালিকানাধীন, এবং তাই, ডিফল্টরূপে, আপনি এটি সুডোর সাথে অ্যাক্সেস করতে পারেন।

সংস্করণ 0.5.3 থেকে শুরু করে, যদি আপনি (অথবা আপনার ডকার ইনস্টলার) ডকারের নামক একটি ইউনিক্স গ্রুপ তৈরি করেন এবং এতে ব্যবহারকারী যুক্ত করেন তবে ডকার ডেমন ডোনার গ্রুপের দ্বারা ডিকর গ্রুপ দ্বারা ইউনিক্স সকেট পঠন / লেখার মালিকানা তৈরি করবে । ডকার ডেমনটি সর্বদা রুট ব্যবহারকারী হিসাবে চালানো উচিত, তবে ডকার গ্রুপে ব্যবহারকারী হিসাবে ডকার ক্লায়েন্ট চালানো হলে আপনি সমস্ত ক্লায়েন্ট কমান্ডগুলিতে সুডো যুক্ত করতে হবে না। 0.9.0 হিসাবে, আপনি নির্দিষ্ট করতে পারেন যে ডকার ছাড়া অন্য একটি গ্রুপটি -G বিকল্পের সাথে ইউনিক্স সকেটের মালিক হওয়া উচিত।

সতর্কতা: ডকার গ্রুপ (বা -G দিয়ে নির্দিষ্ট করা গোষ্ঠী) রুট সমতুল্য; দেখ ডকার ডেমন আক্রমণ সারফেস বিবরণ এবং এই ব্লগপস্ট কেন আমরা রুট ব্যবহারকারীদের CentOS, ফেডোরা, অথবা RHEL এ ডকার পরিচালনা করি না  (ধন্যবাদ michael-n)।


পড়া গুরুত্বপূর্ণ: লিনাক্সের জন্য পোস্ট-ইনস্টলেশন পদক্ষেপ (এটি লিঙ্ক ডকার ডেমন আক্রমণ সারফেস বিবরণ)।

একটি নন-রুট ব্যবহারকারী হিসাবে ডকার পরিচালনা করুন

ডকার ডিমনটি একটি টিসিপি পোর্টের পরিবর্তে একটি ইউনিক্স সকেটে সংযুক্ত হয়। ডিফল্টরূপে ইউনিক্স সকেটটি ব্যবহারকারীর রুট দ্বারা মালিকানাধীন এবং অন্যান্য ব্যবহারকারীরা এটি কেবলমাত্র সুডোর মাধ্যমে এটি অ্যাক্সেস করতে পারে। ডকার ডেমন সর্বদা রুট ব্যবহারকারী হিসাবে চালায়।

আপনি ডকার কমান্ডটি ব্যবহার করার সময় সুডো ব্যবহার করতে চান না, ডকারের নামক একটি ইউনিক্স গ্রুপ তৈরি করুন এবং এতে ব্যবহারকারী যুক্ত করুন। ডকার ডিমন শুরু হলে, এটি ডক্সার গ্রুপ দ্বারা ইউনিক্স সকেট পঠন / লেখার মালিকানা তৈরি করে।


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

    sudo groupadd docker
    
  • সংযুক্ত ব্যবহারকারী "$ USER" ডকার গ্রুপে যুক্ত করুন। আপনি যদি আপনার বর্তমান ব্যবহারকারী ব্যবহার করতে না চান তবে আপনার পছন্দের ব্যবহারকারীর সাথে মেলে ব্যবহারকারীর নামটি পরিবর্তন করুন:

    sudo gpasswd -a $USER docker
    
  • হয় না একটি newgrp docker অথবা গ্রুপে পরিবর্তনগুলি সক্রিয় করতে লগ ইন / ইন করুন।

  • তুমি ব্যবহার করতে পার

    docker run hello-world
    

    আপনি sudo ছাড়া ডকার চালাতে পারেন কিনা তা পরীক্ষা করার জন্য।


953
2018-06-06 08:24



যে উত্পাদন জন্য সবচেয়ে নিরাপদ আর্কিটেকচার না? আমি নিশ্চিত কিছু একটা ভুলে যাচ্ছি - matt
হ্যাঁ, কিন্তু প্রতি বিশেষাধিকার প্রক্রিয়া শোষণের জন্য সম্ভাব্য আপ খোলা। অপারেটিং সিস্টেমের মধ্যে গভীর যে ডকার hooking সত্যিই অধিকার যে স্তরের জবাব? - matt
newgrp docker আমার জন্য কাজ করিনি, আমাকে লগ আউট করতে হয়েছিল। - lolmaus - Andrey Mikhaylov
এটা যে ব্যবহারকারী দেয় যে ইঙ্গিত মূল্য অবাধ, অ-পাসওয়ার্ড সুরক্ষিত রুট এক্সেস। বিস্তারিত দেখুন এখানে দুর্বলতা - Chris Foster
এই পরিবর্তনের জন্য আপনাকে ডকার ডেমন পুনঃসূচনা করতে হবে না !! শুধু ব্যবহারকারী যে আপনি শুধু ফিরে লগ আউট যোগ আছে - Tommy


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

 sudo usermod -aG docker $USER

এখন, ব্যবহারকারী লগআউট তারপর আবার লগইন আছে। এই সমাধান ভাল ব্যাখ্যা করা হয় এখানে সঠিক ইনস্টলেশন প্রক্রিয়া সঙ্গে।


153
2018-02-27 19:57



গ্রুপে ব্যবহারকারী যুক্ত করার পরে, এই কমান্ড চালান: sg group_name -c "bash" - madjardi
সত্যিই অপারেটিং সিস্টেম পুনরায় আরম্ভ করতে হবে না। শুধু লগআউট এবং আবার লগ ইন করুন। - binW
এই পরিবর্তনের জন্য আপনাকে ওএস পুনরায় চালু করতে হবে না! যে সব চলমান পাত্রে বোমা হবে! শুধু ব্যবহারকারী যে আপনি শুধু লগ আউট যোগ তারপর আছে। - Tommy
কিভাবে অন্য কমান্ডে "sudo gpasswd -a $ {USER} ডকার" থেকে পৃথক কমান্ডটি? যদি এ সব... - Ashley Aitken
আপনি কি দস্তাবেজগুলির দ্বারা প্রদত্ত সতর্কতা যোগ করতে পারেন: "ডকার গ্রুপ [...] রুট-সমতুল্য", তাই লোকেদের এটি সম্পর্কে চিন্তা করার সুযোগ আছে - Murmel


একটি ব্যবহারকারী গ্রুপ যুক্ত যা প্রক্রিয়া docker ডকার চালানোর জন্য অনুদান অনুমতি ডকারের সকেটে অ্যাক্সেস পেতে /var/run/docker.sock। যদি ফাইল সিস্টেম থাকে /var/run এসিএল সক্রিয় সঙ্গে মাউন্ট করা হয়েছে, এটি ACLs মাধ্যমে অর্জন করা যেতে পারে।

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

আমি সম্পূর্ণতা জন্য এই অন্তর্ভুক্ত করছি।

সাধারণভাবে, আমি যখন এসিএলগুলি এড়ানোর জন্য গ্রুপগুলির উপর একটি ভাল বিকল্প উপলব্ধ তখন এড়াতে সুপারিশ করি: এটি ভাল, যদি সিস্টেমের সুবিধা শুধুমাত্র গ্রুপ সদস্যতাগুলি দেখে বোঝা যায়। সিস্টেম বিশেষাধিকারগুলি বোঝার জন্য ACL এন্ট্রিগুলির জন্য ফাইল সিস্টেম স্ক্যান করা নিরাপত্তা অডিটগুলির জন্য অতিরিক্ত বোঝা।

সতর্কতা 1: এই একই আছে root যোগ হিসাবে সমতা username যাও যাও docker গ্রুপ। আপনি এখনও একটি উপায়ে একটি ধারক শুরু করতে পারেন root হোস্ট ফাইল সিস্টেমের অ্যাক্সেস।

সতর্কতা 2: গ্রুপ ভিত্তিক নিরাপত্তা অপেক্ষা নিরাপত্তা অডিটগুলির জন্য ACLs উল্লেখযোগ্যভাবে আরো কঠিন। সম্ভাব্য এসিএলগুলি এড়ানোর সময় আপনি যখন গ্রুপগুলি ব্যবহার করতে পারেন, অন্তত অডিট-প্রাসঙ্গিক পরিবেশগুলিতে।


25
2017-12-01 16:08



এটি 16.04 এ কাজ করেছে - edib
আমার যা দরকার তা অন্যান্য উত্তরগুলির জন্য ব্যবহারকারীকে রুট অনুমতি নিতে হবে। অনেক ধন্যবাদ! - Mrinal Saurabh
অনেক ভাল উপায় ইমো। গ্রুপ ডকারটি রুট সমতুল্য এবং এটি সর্বদা বিপদ একটি চিহ্ন। এবং আমি এই ফাইলটির মালিকানা নিতে কোন অসুবিধা দেখছি না। - Xerus
আপনি কোন কমান্ডগুলি "ডকার এ সকেট অ্যাক্সেস পেতে /var/run/docker.sock"? - Yuval Atzmon
@ এক্সরাস যদি আমি সঠিকভাবে বুঝতে পারি, যে কেউ এই সকেটে লিখতে পারে সেটি রুট সমতুল্য সুবিধাও পেতে পারে। সুতরাং অ্যাক্সেসের মাধ্যমে এই সকেটে কেউ অ্যাক্সেস দেওয়ার ক্ষেত্রে একই ব্যক্তিটিকে ডকার গ্রুপে যুক্ত করার মতো সুরক্ষা প্রভাব রয়েছে। - Paŭlo Ebermann