free -lh
docker system df
docker system info
Docker Bench for Security ist ein Skript, das dein gesamtes Docker-Setup anhand der Empfehlungen des Center for Internet Security (CIS) auditiert. Es prüft z.B. Host-Sicherheitskonfiguration, Container-Einstellungen und Netzwerkregeln:
Installation und Aiufrug
git clone https://github.com/docker/docker-bench-security.git cd docker-bench-security sudo sh docker-bench-security.sh
Das Skript erstellt einen detaillierten Bericht mit Verbesserungsvorschlägen
docker logs CONTAINERNAME
Eine Liste der Commands findest du in der Docker Doku
Um Passwörter in Docker Compose nicht im env-File zu hinterlegen, sondern als Datei-gehaltenes Secret zu verwenden, nutzt du die Compose-„secrets“-Funktion. Diese stellt Daten im Container unter /run/secrets/<name> als Datei bereit. Das offizielle Nextcloud-Image (und die meisten aktuellen Datenbank-Container) unterstützen die Übergabe sensibler Daten per *_FILE-Umgebungsvariablen, die auf diese Dateien zeigen.
Ein exemplarisches docker-compose.yml für Nextcloud & Postgres mit Secret-Verwendung könnte so aussehen:
version: '3.9'
services:
db:
image: postgres:16
restart: always
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_DB_FILE: /run/secrets/postgres_db
POSTGRES_USER_FILE: /run/secrets/postgres_user
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
secrets:
- postgres_db
- postgres_user
- postgres_password
app:
image: nextcloud:latest
restart: always
ports:
- 8080:80
volumes:
- nextcloud_data:/var/www/html
environment:
POSTGRES_HOST: db
POSTGRES_DB_FILE: /run/secrets/postgres_db
POSTGRES_USER_FILE: /run/secrets/postgres_user
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
NEXTCLOUD_ADMIN_USER_FILE: /run/secrets/nc_admin_user
NEXTCLOUD_ADMIN_PASSWORD_FILE: /run/secrets/nc_admin_pw
depends_on:
- db
secrets:
- postgres_db
- postgres_user
- postgres_password
- nc_admin_user
- nc_admin_pw
volumes:
db_data:
nextcloud_data:
secrets:
postgres_db:
file: ./secrets/postgres_db.txt
postgres_user:
file: ./secrets/postgres_user.txt
postgres_password:
file: ./secrets/postgres_password.txt
nc_admin_user:
file: ./secrets/nc_admin_user.txt
nc_admin_pw:
file: ./secrets/nc_admin_pw.txt
Wichtige Hinweise:
./secrets/nc_admin_pw.txt liegen.NEXTCLOUD_ADMIN_PASSWORD_FILE statt NEXTCLOUD_ADMIN_PASSWORD.So bleiben sensible Informationen aus der Compose-Datei, dem ENV-File und sämtlichen Logfiles heraus und werden sicher als Datei injiziert.
docker stats --no-stream