أخبار جيدة: عامل الميناء الجديد (الإصدار 19.03 (التجريبي حاليا)) سوف تكون قادرة على تشغيل بلا جذور ينفي المشاكل التي يمكن أن تحدث باستخدام مستخدم الجذر. لا مزيد من العبث بأذونات مرتفعة وجذر وأي شيء قد يفتح جهازك عندما لا ترغب في ذلك.
يقول مهندسو عامل الميناء إن الوضع بدون جذور لا يمكن اعتباره بديلا لمجموعة كاملة من ميزات محرك عامل الميناء. تتضمن بعض القيود على الوضع بدون جذور ما يلي:
كغروبس ضوابط الموارد ، ملامح الأمن أبارمور ، نقطة تفتيش / استعادة ، شبكات تراكب الخ. لا تعمل على وضع بلا جذور.
تعريض المنافذ من الحاويات يتطلب حاليا عملية مساعد سوكات اليدوية.
فقط توزيعات على أساس أوبونتو دعم أنظمة الملفات تراكب في وضع بلا جذور.
يتم حاليا توفير وضع بلا جذور فقط للبنيات الليلية التي قد لا تكون مستقرة كما اعتدت عليها.
اعتبارا من عامل الميناء 19.3 هذا عفا عليه الزمن (وأكثر خطورة من الحاجة):
الخفي دوكر يعمل دائما كمستخدم الجذر ، ومنذ دوكر الإصدار 0.5.2 ، الخفي دوكر يربط إلى مقبس أونيكس بدلا من منفذ تكب. افتراضيا أن يونكس المقبس مملوكة من قبل الجذر المستخدم ، وهكذا ، افتراضيا ، يمكنك الوصول إليه مع سودو.
بدءا من الإصدار 0.5.3 ، إذا كنت (أو المثبت عامل الميناء الخاص بك) إنشاء مجموعة أونيكس تسمى عامل الميناء وإضافة مستخدمين إليها ، ثم الخفي عامل الميناء سيجعل ملكية مقبس أونيكس قراءة/للكتابة من قبل مجموعة عامل الميناء عندما يبدأ الخفي. يجب تشغيل الخفي عامل الميناء دائما كمستخدم الجذر ، ولكن إذا قمت بتشغيل العميل عامل الميناء كمستخدم في مجموعة عامل الميناء ثم لا تحتاج إلى إضافة سودو لجميع أوامر العميل. اعتبارا من 0.9.0 ، يمكنك تحديد أن مجموعة أخرى من عامل الميناء يجب أن تملك مقبس يونكس مع الخيار-ز.
في الإصدار الأخير من وضع تجريبي بدون جذور على جيثب، يذكر المهندسون أن الوضع بدون جذور يسمح بتشغيل دوكيرد كمستخدم غير متميز ، باستخدام مساحات أسماء المستخدمين(7) ، مساحات أسماء المستخدمين(7) ، مساحات أسماء الشبكات (7).
يحتاج المستخدمون إلى تشغيل dockerd-rootless.sh بدلا من دوكرد.
$ dockerd-rootless.sh --experimental
نظرا لأن الوضع بدون جذور تجريبي ، يحتاج المستخدمون إلى التشغيل دائما dockerd-rootless.sh مع-التجريبية.
الخفي عامل الميناء يربط إلى مقبس أونيكس بدلا من منفذ تكب. افتراضيا أن يونكس المقبس مملوكة من قبل الجذر المستخدم ويمكن للمستخدمين الآخرين الوصول إليه فقط باستخدام سودو. الخفي عامل الميناء يعمل دائما كمستخدم الجذر.
إذا كنت لا تريد استخدام سودو عند استخدام الأمر عامل الميناء ، إنشاء مجموعة يونكس تسمى عامل الميناء وإضافة مستخدمين إليها. عندما يبدأ الخفي عامل الميناء ، فإنه يجعل ملكية مأخذ يونكس قراءة / للكتابة من قبل مجموعة عامل الميناء.
أضف مجموعة عامل الإرساء إذا لم تكن موجودة بالفعل:
sudo groupadd docker
إضافة المستخدم المتصل & مثل; - المستخدم & مثل; إلى مجموعة عامل الميناء. قم بتغيير اسم المستخدم لمطابقة المستخدم المفضل لديك إذا كنت لا تريد استخدام المستخدم الحالي:
sudo gpasswd -a $USER docker
إما القيام newgrp docker أو قم بتسجيل الخروج / الدخول لتنشيط التغييرات على المجموعات.
يمكنك استخدام
docker run hello-world
للتحقق مما إذا كان يمكنك تشغيل عامل الميناء دون سودو.
الآلية التي يتم من خلالها إضافة مستخدم إلى المجموعة docker يمنح الإذن لتشغيل عامل الميناء هو الوصول إلى مقبس عامل الميناء في /var/run/docker.sock. إذا كان نظام الملفات الذي يحتوي على /var/run وقد شنت مع أكلس تمكين ، وهذا يمكن أن يتحقق أيضا عن طريق أكلس.
بشكل عام ، أوصي لتجنب أكلس كلما بديل جيد على أساس المجموعات هو متاح: فمن الأفضل إذا الامتيازات في نظام يمكن فهمها من خلال النظر في عضوية المجموعة فقط. الحاجة إلى مسح نظام الملفات لإدخالات أكل من أجل فهم امتيازات النظام هو عبء إضافي لعمليات التدقيق الأمني.
تحذير 1: هذا له نفس الشيء root التكافؤ كإضافة $USER إلى docker مجموعة. لا يزال بإمكانك بدء حاوية بطريقة لديها root الوصول إلى نظام الملفات المضيف.
تحذير 2: تعتبر عمليات التدقيق الأمني أكثر صعوبة بكثير من عمليات التدقيق الأمني القائمة على المجموعة. ربما تجنب أكلس إذا كان ذلك ممكنا عندما يمكنك استخدام مجموعات بدلا من ذلك ، على الأقل في البيئات ذات الصلة التدقيق.
يجب تشغيل حاويات عامل الإرساء بواسطة مستخدم جذر. يمكنك إضافة نفسك إلى docker المجموعة (على سبيل المثال عن طريق تشغيل sudo usermod -aG docker $USER) ، ولكن هذا يجعل من السهل على أي شخص لديه إمكانية الوصول إلى $USER حساب للوصول الجذر إلى الجهاز (على سبيل المثال عن طريق تركيب وحدة تخزين الجذر في حاوية مميزة).
وهناك طريقة أكثر أمنية واعية لتشغيل حاويات عامل الميناء كمستخدم غير الجذر سيكون لاستخدام بودمان: https://podman.io/. من موقعها على الانترنت:
بودمان هو محرك حاوية ديمونليس لتطوير وإدارة وتشغيل حاويات أوسي على نظام لينكس الخاص بك. يمكن تشغيل الحاويات كجذر أو في وضع بلا جذور. ببساطة: alias docker=podman.
بديل آخر هو التفرد، والذي يتم نشره بشكل أكثر شيوعا في بيئات الكمبيوتر: https://sylabs.io/.
التثبيت الموصى به هو ليس عامل الإرساء في اتفاقيات إعادة الشراء الافتراضية لأوبونتو ؛ بدلا من ذلك ، التعليمات هنا ( Redirecting…) ، نوصي باستخدام الريبو عامل الميناء. إزالة جميع الاشياء عامل الميناء الموجودة ، والتحقق من أنك تحصل على واحد من المصدر الصحيح ` ‘ملائمة-سياسة ذاكرة التخزين المؤقت عامل الميناء المحرك’ (يجب أن يكون عنوان ورل مناسب من dockerproject.org)
ما غير المرغوب فيه هو هذا لمطالبة الجذر للقيام بأشياء بسيطة مثل معلومات عامل الميناء. مثل` عامل الميناء معلومات ’ يحتاج الوصول الخام إلى كل ما عندي من الملفات والأجهزة والمنافذ لتشغيل.