Docker Compose

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

http://localhost

phpMyAdmin

http://localhost:8080

virtuelle Domains

http://app.local

http://projects.local

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.

2 Antworten auf „Docker Compose“

  1. Ah no, seit Docker Compose v2 ist dieser Installationsweg nicht mehr empfehlenswert.

    Mit Docker Compose v2 wird es als cli-plugin in Docker genutzt.

    1. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.