Lerne ein paar Dinge über Docker Compose.
Was ist Docker?
Docker ist eine Freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung.
Docker vereinfacht die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen. Container gewährleisten die Trennung und Verwaltung der auf einem Rechner genutzten Ressourcen. Das beinhaltet laut Aussage der Entwickler: Code, Laufzeitmodul, Systemwerkzeuge, Systembibliotheken – alles was auf einem Rechner installiert werden kann.
Quelle: https://de.wikipedia.org/wiki/Docker_(Software)
Was ist Docker Compose?
Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern. Mit Compose verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Anschließend erstellen und starten Sie mit einem einzigen Befehl alle Dienste aus Ihrer Konfiguration.
Quelle: https://docs.docker.com/compose/ (übersetzt)
Was ist Docker Hub?
Docker Hub ist ein von Docker bereitgestellter Dienst zum Suchen und Freigeben von Container-Images für Ihr Team. Es ist das weltweit größte Repository für Container-Images mit einer Reihe von Inhaltsquellen, darunter Container-Community-Entwickler, Open-Source-Projekte und unabhängige Softwareanbieter (ISV), die ihren Code in Containern erstellen und verteilen.
Quelle: https://docs.docker.com/docker-hub/ (übersetzt)
Installation
macOS
Installiere Docker Desktop nach dieser Anleitung.
Windows
Installiere Docker Desktop nach dieser Anleitung.
Linux
Debian/Ubuntu
sudo apt install docker
sudo apt install docker-compose
Arch/Manjaro
sudo pacman -S docker
sudo pacman -S docker-compose
Service
sudo systemctl start docker.service
sudo systemctl enable docker.service
Benutzung ohne Root
sudo usermod -aG docker $USER
sudo reboot
Grundlegendes
Nachdem die Grundvoraussetzungen geschaffen wurden, fehlt noch die jeweilige Umgebung zu konfigurieren.
Grundlegend benötigt man eine Dockerfile und eine docker-compose.yml in einem separaten Ordner.
Ich werde an dieser Stelle dazu vorerst nicht weiter darauf eingehen. Ich habe auf Github dazu bereits ein Projekt, dass ich stattdessen im nächsten Schritt verwenden werde.
docker-compose-lamp
Basis LAMP Stack Environment für Entwickler
Einstieg
git clone https://github.com/robertsaupe/docker-compose-lamp.git
cd docker-compose-lamp/
cp sample.env .env
### editiere .env nach deinen Bedürfnissen
### baut und startet die Umgebung:
./build.sh
### startet die Umgebung:
./start.sh
### stoppt die Umgebung:
./stop.sh
Aufruf
Dashboard
phpMyAdmin
virtuelle Domains
Um die oben genannten URL zu verwenden, musst du noch die Hosts-Datei ändern.
Linux/macOS
sudo nano /etc/hosts
Windows
Du kannst dafür einfach Notepad verwenden. Dabei gehst du im Startmenü mit Rechtsklick auf „als Administrator ausführen“. Anschließend gehst du auf Öffnen, alle Dateien anzeigen und navigierst zum Ordner C:\Windows\System32\drivers\etc. Nun kannst du die Datei hosts öffnen und editieren.
Fazit
Die Einarbeitung benötigt etwas Zeit. Die Dokumentation ist sehr umfangreich und nicht alles ist leicht zu verstehen. Glücklicherweise muss man das nicht, da es dank Docker Hub und z.B. Github einen zum großen Teil abgenommen wird. Zumindest kann man damit einen erheblichen Teil der Szenarien abdecken. Desweiteren kann man damit Anforderungen per Projekt/Applikation/Einsatzzweck genau zuschneiden, ohne den Host/Server großartig zu tangieren.
Diese Methode ist mein persönlicher Favorit, zumal ich vereinzelt mit verschiedenen Software Versionen arbeiten muss.
Ah no, seit Docker Compose v2 ist dieser Installationsweg nicht mehr empfehlenswert.
Mit Docker Compose v2 wird es als cli-plugin in Docker genutzt.
Ich habe es eben überprüft und kam zu einen anderen Schluss.
Im Installationsweg wird Docker Compose v2 als cli-plugin (global) installiert.
Dies kann mit docker compose version überprüft werden.
Außerdem befindet sich die Binary in /usr/lib/docker/cli-plugins/.
Also kann man es sehr wohl genau so machen.