Fragen zu einigen "Parametern" in einem Docker-Compose

Frank73

Benutzer
Mitglied seit
29. Jan 2018
Beiträge
149
Punkte für Reaktionen
5
Punkte
18
Hallo,

bin gerade dabei mich etwas mit der Thematik Container zu beschäftigen (rein als Benutzer).
Beim stöbern durch das schöne große www bin ich aktuell auf einige Parameter gestoßen, von welchen ich nicht weiß ob die Verwendung Sinn macht, oder ob diese generell unterstützt werden.

1) logging: driver: json-file --> Parameter für die Anzahl und Größe der log-Dateien innerhalb der Container
2) security_opt: - no-new-privileges:true
3) USERMAP_UID: xxxx
4) USERMAP_GID: yyyy

Macht es Sinn diese Parameter generell bei jedem deployen eines Containers mitzugeben; werden diese standardmäßig von den Containern unterstützt?

Wäre um Infos dankbar, wie das die Container-Erfahrenen handhaben.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Vorab: Ich nutze weder den Container Manager noch Portainer, sondern konfiguriere die Container über eine extra Datei (yaml), deswegen mag es bei anderen Vorgehensweisen auch noch andere Tipps geben.

Bei den Containern, die ich installiert habe, schaue ich vorher auf der Seite der Entwickler nach, welche Konfiguration die empfehlen und nutze dann zumindest die Parameter, die dort auch angegeben sind. Bei Paperless-ngx gibt es dann beispielsweise noch weitere Parameter, die extra konfiguriert werden können je nach persönlichen Vorlieben.

Aber ich gebe keinem Container standardmäßig irgendwelche Parameter mit, wenn der Entwickler das nicht empfiehlt.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
1 und 2 werden standardmäßig unterstützt. Das macht der Docker Daemon und nicht der Container. Letztere beide geben dem Container halt nen User mit, das ist aber m.W. bei jedem Container ein wenig anders. Wenn man das nicht macht, läuft der Container entweder als root oder als gar kein User, je nach Container.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Zu 3 und 4: das ist kein Docker Feature, sondern ein Feature das ein Maintainer in sein Image eingebaut hat oder auch nicht. Auch die eignetlichen Variablen-Namen sind so wie sie jeder Maintainer haben will.

Es gibt natürlich auch ein Docker-Feature dafür:
- docker run -u uid[:gid]
- oder in compose user: uid[:gid]

Statt uid muss man natürlich eine richtige UID verwenden, optional kann man noch eine gid mitgeben. Dabei müssen die verwendeten UID:GID im Container nicht mal existieren. Ein solcher Container ist darauf angewiesen, dass die Binds (volumes bei denen Host-Verzeichnisse in den Container gemapped werden) denselben Besitzer haben, wie da was man bei `-u` mitgibt.
 

Frank73

Benutzer
Mitglied seit
29. Jan 2018
Beiträge
149
Punkte für Reaktionen
5
Punkte
18
Danke für eure Infos.

Zu den Parametern 3 und 4 hätte ich in Bezug auf paperless-ngx noch eine Frage:
Auf dem Host ist der Besitzer der Ordner ein Admin-User. Diese UID habe ich nicht nach paperless gemapped, sondern die UID meines "normalen" Users. Für die GID hingegen habe ich die "dockergruppe" gemapped und die Zugriffe funktionieren auch einwandfrei.

Kann ich die Vergabe der beiden Parameter dann als "oder" verstehen?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Wiso oder?

Der Benutzer im Container erhält die UID und die GID die Du konfiguriert. Wenn es um die Berechtigung auf der Dateiebene geht, wäre es ein ODER zwischen Besitzer (=identische UID), Gruppe (=wenn die UID nicht passt, aber die GID schon) oder andere (=nichts von Beidem passt).
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat