Próbuję użyć urządzenia pętlowego wewnątrz kontenera, aby zamontować jakiś plik obrazu:
> sudo losetup /dev/loop0 test.img
losetup: /dev/loop0: failed to set up loop device: No such file or directory
/dev/loop0
naprawdę nie istnieje i
> sudo mknod /dev/loop0 b 7 0
mknod: ‘/dev/loop0’: Operation not permitted
Jak mogę to zrobić? Czy kontener potrzebuje uprawnień grupy cgroup, których może nie mieć?
linux
containers
cgroup
loop-device
Johannes Ernst
źródło
źródło
--capability=CAP_MKNOD
nadal działa? Wydaje mi się, że to nie ma żadnego efektu,Operation not permitted
nawet się z tym zgadzam , podobnie jak ten użytkownik i ten użytkownik .--capability=CAP_MKNOD
musiałem ustawićDeviceAllow=block-loop rwm
jednostkę systemd-nspawn, aby działało ( stąd ten pomysł ).--device-cgroup-rule="b 7:* rmw"
abydocker run
umożliwić pełny dostęp do urządzeń sprzężenia zwrotnego (ale żadnych innych, ponieważ nie ma--privilege
). Znaleziono za pośrednictwem docs.docker.com/edge/engine/reference/commandline/create/… i przetestowano na dokerze 18.06.1-ce (dokument twierdzi, że dotyczy tylko Docker Edge)Urządzenia pętli są dostarczane przez moduł jądra. Dlatego potrzebujesz specjalnych uprawnień, aby uzyskać do nich dostęp. Musisz je również wyeksponować w kontenerze lub ręcznie utworzyć pliki urządzenia.
Szybka odpowiedź
Alternatywa
To prawie działa
Jednak pojawia się ten błąd:
Zobacz ten link, aby uzyskać więcej informacji .
Uwaga na stronie podręcznika systemd-nspawn:
źródło