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
- Innerhalb des Containers sollten wir in das Verzeichnis schreiben können.
- Außerhalb des Containers sollten wir in der Lage sein, in die im Container erstellten Dateien und Verzeichnisse zu schreiben.
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 Benutzer breakds
, dessen UID und GID es sind 1000
.
Ich habe dann einen Benutzer in dem Container namens " debian
uid" und "gid" erstellt 1000
(weil es der erste Benutzer ist, der kein Root-Benutzer ist). Ich erstelle dann einen (lxc) -Profi auf dem Host von
lxc profile edit breakds
Und unten ist der Inhalt des Profils (ich glaube, es ist im Yaml-Format):
name: breakds
config:
raw.lxc: |
lxc.id_map =
lxc.id_map = u 0 165536 999
lxc.id_map = g 0 165536 999
lxc.id_map = u 1000 1000 1
lxc.id_map = g 1000 1000 1
lxc.id_map = u 1001 166537 64535
lxc.id_map = g 1001 166537 64535
user.vendor-data: |
packages:
- bash
description: allow home dir mounting for breakds
devices:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
projects:
path: /home/breakds/projects
source: /home/debian/projects
type: disk
Wenden Sie dann dieses Profil dauerhaft auf diesen Container an:
$ lxc profile apply <my container> breakds
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.