Wie kann ich einen Ordner zwischen dem Hostsystem (Ubuntu 14.04) und einem Ubuntu LXC-Container freigeben?
Ich habe versucht, den Ordner auf dem Host zu mounten:
sudo mount --bind /media/data/share /media/data/container/name/rootfs/share
aber ich kann keine dateien sehen.
Das gleiche gilt für:
sudo ln -s /media/data/share /media/data/container/name/rootfs/share
Muss ich die Berechtigungen für den Freigabeordner ändern?
share
in verwendetlxc.mount.entry
wird, kritisch ist.Laut der LXC-Dokumentation können Sie dies über einen privilegierten Container tun:
quelle
lxd
) zu verweisen, wie er in dieser Antwort verwendet wird, oder auf LXC (die Software und das "alte" Toolset mit denlxc-*
benannten Tools) oder auf das Projekt (wo LXC ist die Abkürzung für LinuX Containers. Dies ist der Grund, warum ich diese Frage auf der Unix.SE-Meta gestellt habe.Im Folgenden wird beschrieben, wie ich eines meiner Hostverzeichnisse in den Container eingebunden habe. Das ist kniffliger als es sich anhört, weil wir es erreichen möchten
Nachdem ich verschiedene Artikel online gelesen habe (das hilfreichste ist dieses Github-Problem ), hier ist, wie ich das löse. Der Trick besteht darin, die Benutzer-ID und die Benutzer-ID des Host-Benutzers der Benutzer-ID und der Benutzer-ID im Container zuzuordnen.
Angenommen, ich werde
/home/breakds/projects
genau an derselben Stelle im Container montiert . Das externe Verzeichnis gehört dem Benutzerbreakds
, dessen UID und GID es sind1000
.Ich habe dann einen Benutzer in dem Container namens "
debian
uid" und "gid" erstellt1000
(weil es der erste Benutzer ist, der kein Root-Benutzer ist). Ich erstelle dann einen (lxc) -Profi auf dem Host vonUnd unten ist der Inhalt des Profils (ich glaube, es ist im Yaml-Format):
Wenden Sie dann dieses Profil dauerhaft auf diesen Container an:
Dies sollte den Trick machen.
HINWEIS : Bitte beachten Sie, dass Sie vor dem Wechsel zu diesem Profil sicherstellen müssen, dass alle Verzeichnisse oder Dateien, deren Eigentümer / Gruppe Debian ist, gelöscht werden (und möglicherweise nach dem Wechsel neu erstellt werden). Dies liegt daran, dass nach der Zuordnung von uid und gid ihr Besitz ungültig wird. Ich dachte ursprünglich, da ich nur 1000 auf 1000 abbilden möchte, sollte alles in Ordnung sein, aber ich denke, ich habe hier etwas verpasst und es wäre großartig, wenn jemand einen Rat geben könnte, wie man dies ohne den Hack lösen kann.
quelle
chown
vom Host.Sie können dies auch ohne LXD tun, indem Sie die LXC-Konfigurationsdatei direkt bearbeiten:
Sie müssen auch sicherstellen, dass das Benutzerkonto des Containers die Berechtigung zum Zuordnen zu UID / GID 1000 auf dem Host erhält, indem Sie / etc / subuid und / etc / subgid bearbeiten:
quelle