Ich führe einige Dienste in Docker LXC-Containern auf meinem Server aus und beginne, ernsthafte Dinge damit zu tun.
Eine Sache, die mir nicht klar ist, ist, wie Benutzerberechtigungen innerhalb und außerhalb des Containers funktionieren. Wenn ich beispielsweise MySQL in einem Container ausführe und das Datenverzeichnis auf " /data
Docker-Volume" eingestellt habe, wie wirken sich Berechtigungen innerhalb und außerhalb des Containers auf Zugriffsrichtlinien aus?
Offensichtlich besteht die Idee darin, MySQL als eigenen Benutzer im Container (dh mysql:mysql
) auszuführen und ihm Lese- und Schreibrechte für dieses Verzeichnis zu erteilen. Ich gehe davon aus, dass dies ziemlich einfach ist, nur chmod
das Verzeichnis usw. Aber wie funktioniert das außerhalb des Containers? Wie verwalte ich die Zugriffssteuerung auf dieses freigegebene Docker-Volume mit der Bezeichnung "Daten"?
Ich versuche speziell, einen nicht privilegierten Benutzer außerhalb des Docker-Containers ausführen zu können, der regelmäßig auf das freigegebene MySQL-Volume zugreift und die Daten sichert.
Wie kann ich Berechtigungen, Benutzer und Gruppen einrichten, damit ein bestimmter Benutzer auf dem Host Dateien und Ordner auf dem freigegebenen Docker-Volume lesen und schreiben kann?
root
kann übrigens auch unprivilegierte Container betreiben . Wichtig ist, dass ein Mapping für die Usern definiert ist.
docker
Unterstützung dafür) kann der LXC-Container als nichtprivilegierter Benutzer ausgeführt werden. Andernfalls kann derroot
Benutzer im Container möglicherweise ausbrechen, wenn der Container nicht ordnungsgemäß konfiguriert ist. Das heißt,root
auf dem Host befindet sichroot
ein Container in einem privilegierten LXC-Container.