Я нашел решение для решения этой проблемы, и я могу использовать cap_net_admin
в режиме роя.
Вы можете изменить исходный код среды выполнения, чтобы добавить необходимые вам возможности (это будет локальная настройка по умолчанию).
Например, я добавил CAP_NET_ADMIN
к моей среде выполнения (используется nvidia-container-runtime
)wanyvic/nvidia-контейнер-среда выполнения.
После этого я перестроил его, запустил контейнер (используйте режим роя), ввел: capsh --print
и CAP_NET_ADMIN можно найти:
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
, но я не могу найти способ решить эту проблему.