Docker Best Practices
Neben der sicherheitsrelevanten Konfiguration von Docker Desktop gibt es grundlegende Best Practices im Umgang mit Containern, die insbesondere in Entwicklungsumgebungen wichtig sind.
Privileged Container vermeiden
Abschnitt betitelt „Privileged Container vermeiden“Privilegierte Container heben viele der Sicherheitsmechanismen von Docker auf. Folgende Optionen sollten daher nicht verwendet werden:
--privilegedoder in Docker Compose:
privileged: trueKeine zusätzlichen Socket-Mounts
Abschnitt betitelt „Keine zusätzlichen Socket-Mounts“Neben dem Docker-Socket existieren weitere sensible Container-Runtime-Sockets. Diese sollten niemals in Container gemountet werden.
Beispiele:
/var/run/docker.sockGit Credentials nicht mounten
Abschnitt betitelt „Git Credentials nicht mounten“Git- und SSH-Credentials sollten nicht pauschal in Container gemountet werden. Insbesondere zu vermeiden sind breite Mounts wie:
~/.ssh:/root/.ssh~/.gitconfigSolche Mounts geben dem Container Zugriff auf alle privaten Schlüssel, bekannten Hosts und Git-Identitäten des Host-Systems - auch auf solche, die mit dem jeweiligen Projekt nichts zu tun haben.
Stattdessen sollten Dateien gezielt gemountet werden und SSH-Agent Forwarding verwendet werden. Dadurch verbleiben private Schlüssel auf dem Host-System und werden nicht im Container gespeichert.