Ich betreibe im privaten „Produktivbetrieb“ eigene und Fremdsoftware mit docker bzw. docker-compose. Dies bringt in meinen Augen einige Vorteile im Betrieb. Welche sind das für mich?
Schnellere Installation und Konfiguration mit Docker-Compose
Insbesondere wenn man das Compose-File schon hat, ist die Installation einfach und erfolgt immer mit Hilfe der gleichen Mittel – nämlich das, was Docker-Compose so bietet: Environment, mounted Volumes etc. Es bleibt ja bei „konventioneller Installation“ nicht beim apt-get install...
– insbesondere, wenn mehrere Komponenten zusammenspielen. Typisch sind ja z.B. Server + mylsql + mysql-Backup. Bei Installation via Docker-Compose sammelt sich (zumindest bei guten Images) die Konfiguration im Compose-File und das ähnelt sich bei den verschiedenen Installationen.
Einfache Updates
Updates laufen immer gleich: Ich mach das derzeit mit einem Cron-Job, der im Kern ein docker-compose up -d --remove-orphans
macht. Es gibt aber auch Images, die das automatisieren (z.B. watchtower) – habe ich aber noch nicht ausprobiert.
Updates sind ja v.a. bei nicht-apt-Sachen (z.B. Confluence) u.U. mühsam. Bei Docker/-Compose weiß man immer, wo man hinfassen muss, weil es immer gleich läuft.
Einfaches Datei-Backup
Alle Daten liegen bei mir in Datenvolumes, welche ich alle unter /opt/dockervolumes
sammle. Dies liegt auf einem NFS-Server und wird von allen Dockerhosts gemountet.
- Nur dieses Verzeichnis muss zentral gesichtert werden.
- D.h. nur die wichtigen Dateien werden gesichtert – und nicht immer das ganze System.
- Neue Volumes werden „autmatisch“ mit gesichert, wenn ich sie im zentralen
/opt/dockervolumes
ablege.
Einfaches mysql-Backup
mysql-Backup erledige ich immer über mein backup-all-mysql, in dem ich ins Compose-File einen Abschnitt wie folgenden einfüge:
backup-mysql:
image: dsteinkopf/backup-all-mysql:latest
restart: always
environment:
- BACKUP_INTERVAL=86400
- BACKUP_FIRSTDELAY=4000
- 'MYSQL_CONNECTION_PARAMS=--user=root --host=db --password=verysecret'
links:
- db
volumes:
- /opt/dockervolumes/nextcloud/mysql-backup:/var/dbdumps
networks:
- mynet
Security
- Container sind voreinander geschützt (bzw. schützbar).
- feinere Granularität als VMs.
- weitreichende Sicherheitseinstellungen möglich.
Ressourcen
Viel geringerer Ressourcenverbrauch als VMs – v.a. weniger (teurer) Arbeitsspeicher.
Einheitlichkeit, Flexibilität, Übersicht durch Docker-Compose
- Leichteres Umziehen, auf andere Maschine
- Alle Konfigs immer gleichermaßen im Compose-File (diese liegen bei mir alle in
/opt/compose
).
P.S. Über Feedback (Zustimmung, Widerspruch, eigene Erfahrungen) würde ich mich freuen.
Ich nutze aktuell noch KVM, da ich mich noch nicht ausreichend mit Docker beschäftigt habe. Die Vorzüge sorgen aber dafür, dass das noch auf meiner To-Do-Liste steht.
In einer KVM teste und spiele ich zu Lernzwecken auch mit Docker rum.
Gerade Nextcloud ist eine Anwendung die ich gerne in Docker auslagern möchte…
Deine Nextcloud-Anleitung habe ich eben auch gefunden, die werde ich mir in den nächsten Tagen auch mal genauer anschauen und testen.
Freut mich. Für Austausch und Anregungen stehe ich gerne zur Verfügung.