لقد وجدت حلا لحل المشكلة ويمكنني استخدام cap_net_admin
في وضع سرب.
يمكنك تعديل التعليمات البرمجية المصدر وقت التشغيل لإضافة القدرات التي تحتاج إليها (سيكون الإعداد الافتراضي المحلي).
على سبيل المثال أضفت CAP_NET_ADMIN
إلى وقت التشغيل الخاص بي (مستعمل nvidia-container-runtime
)وانيفيك / نفيديا-حاوية-وقت التشغيل.
بعد ذلك أعيد بناؤها ، بدأت حاوية (استخدام وضع سرب) ، المدخلات: capsh --print
و كاب نت أدمين يمكن العثور عليها:
root@25303a54ebb3:/# capsh --printCurrent:=cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+eipBounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcapSecurebits: 00/0x0/1'b0 secure-noroot: no (unlocked) secure-no-suid-fixup: no (unlocked) secure-keep-caps: no (unlocked)uid=0(root)gid=0(root)groups=
لكن هذه الطريقة ليست جيدة.
أنا أيضا لا يمكن تعيين cap_add
أو cap_drop
في docker-compose.yml
، لكن لا يمكنني إيجاد طريقة لحلها.