Jak mogę udostępnić folder między systemem hosta (ubuntu 14.04) a kontenerem ubuntu lxc?
Próbowałem zamontować folder na hoście:
sudo mount --bind /media/data/share /media/data/container/name/rootfs/share
ale nie widzę żadnych plików.
To samo dotyczy:
sudo ln -s /media/data/share /media/data/container/name/rootfs/share
Czy muszę zmienić uprawnienia do folderu udostępniania?
lxd
), jak zastosowano w tej odpowiedzi, lub do LXC (oprogramowanie i „stary” zestaw narzędzi z narzędziami olxc-*
nazwach) lub do projektu (gdzie LXC jest skrótem od LinuX Containers). To jest powód, dla którego zadałem to pytanie w meta Unix.SE.Znalazłem artykuł na wiki openSUSE: https://en.opensuse.org/User:Tsu2/LXC_mount_shared_directory
Postępowałem zgodnie z instrukcjami i teraz działa.
Utwórz katalog hosta:
Utwórz katalog w kontenerze lxc:
Edytuj plik konfiguracyjny lxc na hoście:
źródło
share
wlxc.mount.entry
jest krytyczna.Poniżej zrobiłem, aby zamontować jeden z moich katalogów hosta w kontenerze. To trudniejsze niż się wydaje, ponieważ chcielibyśmy to osiągnąć
Po przeczytaniu różnych artykułów online (najbardziej pomocny jest ten problem z githubem ), oto jak to rozwiązać. Sztuczka polega na mapowaniu identyfikatora UID i GID użytkownika hosta na identyfikator UID i GID użytkownika wewnątrz kontenera.
Załóżmy, że zamierzam zamontować
/home/breakds/projects
dokładnie w tym samym miejscu w kontenerze. Katalog zewnętrzny jest własnością użytkownikabreakds
, którego identyfikator UID i GID to1000
.Następnie utworzyłem użytkownika w kontenerze o nazwie
debian
, którego identyfikator użytkownika i identyfikator gid również się zdarzyło1000
(ponieważ jest to pierwszy użytkownik inny niż root). Następnie utworzę (lxc) profie na hoście przezA poniżej jest treść profilu (uważam, że jest w formacie yaml):
Następnie zastosuj ten profil do tego kontenera na stałe:
To powinno załatwić sprawę.
UWAGA : Należy pamiętać, że przed przejściem do tego profilu upewnij się, że wszystkie katalogi lub pliki, których właścicielem / grupą jest debian, powinny zostać usunięte (i prawdopodobnie ponownie utworzone po zmianie). Wynika to z faktu, że po mapowaniu UID i GID ich własność stanie się nieważna. Początkowo myślałem, ponieważ po prostu mapuję 1000 na 1000 wszystko powinno być w porządku, ale myślę, że coś tu przegapiłem i byłoby wspaniale, gdyby ktoś mógł doradzić, jak rozwiązać ten problem bez włamania.
źródło
chown
z hosta.Możesz to również zrobić bez LXD, bezpośrednio edytując plik konfiguracyjny LXC:
Musisz również upewnić się, że konto użytkownika kontenera ma pozwolenie na mapowanie do identyfikatora UID / GID 1000 na hoście poprzez edycję / etc / subuid i / etc / subgid:
źródło