Saya menemukan solusi untuk memecahkan masalah dan saya dapat menggunakan cap_net_admin
dalam mode swarm.
Anda dapat memodifikasi kode sumber runtime untuk menambahkan kemampuan yang Anda butuhkan (ini akan menjadi pengaturan default lokal).
Misalnya saya menambahkan CAP_NET_ADMIN
untuk runtime saya (digunakan nvidia-container-runtime
)wanyvic / nvidia-container-runtime.
Setelah itu saya membangunnya kembali, memulai wadah (gunakan mode swarm), input: capsh --print
dan CAP_NET_ADMIN dapat ditemukan:
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=
Tetapi metode ini tidak baik.
Saya juga tidak bisa mengatur cap_add
atau cap_drop
di docker-compose.yml
, tapi saya tidak dapat menemukan cara untuk menyelesaikannya.