===== Docker Compose Erste Schritte ===== ==== Kurzfassung ==== * Docker Compose orchestriert mehrere Container mit deklarativen YAML-Dateien. * Dienste werden gemeinsam gestartet, gestoppt und skaliert. * Mit wenigen Kommandos läuft ein Apache-Webserver mit PHP 8 samt Volume. ==== Voraussetzungen ==== * Installierte Docker Engine und Docker Compose Plugin ([[docker:docker_installation|Docker Installation]]) * Benutzer mit Zugriff auf die docker-Gruppe oder sudo * Optional: Git/Editor für eigene Projektdateien ==== Erste Schritte ==== **Version prüfen:** docker compose version **Neues Projektverzeichnis anlegen:** \\ (Es wird im Homeverzeichnis des User ein docker Ordner erstellt) mkdir -p ~/docker/apache-php-compose/html **Docker-Compose-Datei erstellen:** cat <<'EOF' > ~/docker/apache-php-compose/docker-compose.yml services: web: image: php:8.2-apache ports: - "8080:80" volumes: - ./html:/var/www/html EOF **Beispielindex mit phpinfo() erzeugen:** cat <<'EOF' > ~/docker/apache-php-compose/html/index.php ==== Apache mit PHP 8 starten ==== **Container starten (Detached, benannt durch Dienstnamen):** cd ~/docker/apache-php-compose docker compose up -d **Log-Ausgabe verfolgen und Ergebnis prüfen:** docker compose logs --tail 20 # Browser: http://localhost:8080 **Container stoppen und entfernen:** docker compose down ==== Eigenes Image erweitern (optional) ==== cat <<'EOF' > ~/docker/apache-php-compose/Dockerfile FROM php:8.2-apache RUN docker-php-ext-install pdo_mysql COPY html/ /var/www/html/ EOF cat <<'EOF' > ~/docker/apache-php-compose/docker-compose.yml services: web: build: . ports: - "8080:80" volumes: - ./html:/var/www/html EOF docker compose up -d --build ==== Kommandos ==== **Dienste im Vordergrund starten:** docker compose up **Projekt im Hintergrund starten:** docker compose up -d **Logs aller Dienste einsehen:** docker compose logs -f **Container stoppen / entfernen:** docker compose down **Einzelnen Dienst neu starten:** docker compose restart web ==== Siehe auch ==== * [[docker:docker_erste_schritte|Docker Erste Schritte]] * [[docker:docker_info|Docker Überblick]] * [[docker:deployment_pipelines|Deployment Pipelines]] {{tag>docker compose einstieg apache php}}