===== Docker Erste Schritte ===== ==== Kurzfassung ==== * Docker vereinfacht das Starten isolierter Anwendungen mit wenigen Befehlen. * Container nutzen Images als Vorlage und laufen unabhängig voneinander. * Mit wenigen Kommandos lässt sich ein Apache-Webserver mit PHP 8 betreiben. ==== Voraussetzungen ==== * Installierte Docker Engine ([[docker:docker_installation|Docker Installation]]) * Benutzer mit Zugriff auf die docker-Gruppe oder sudo * Optional: Git/Editor für eigene Projektdateien ==== Erste Schritte ==== **Verfügbare Images prüfen:** sudo docker search ubuntu **Image lokal ziehen:** sudo docker pull hello-world **Ersten Container starten:** sudo docker run --rm hello-world **Laufende Container anzeigen:** sudo docker ps ==== Apache mit PHP 8 starten ==== **Projektverzeichnis vorbereiten:**\\ **(Es wird im Homeverzeichnis des User ein docker Ordner erstellt)** mkdir -p ~/docker/apache-php/html cat <<'EOF' > ~/docker/apache-php/html/index.php **Container starten (Port 8080 → 80 im Container):** sudo docker run -d --name apache-php -p 8080:80 -v ~/docker/apache-php/html:/var/www/html php:8.2-apache **Erklärung** sudo - Super User Do. docker run -d - Aufruf des Docker-Containers im Hintergrund (daemon) --name apache-php - Name des Docker-Containers. -p 8080:80 - Port des Systems auf dem Docker läuft: Interner Docker Port. -v ~/docker/apache-php/html:/var/www/html - Export aus dem Docker-Container in das Homeverziechnis des Users. php:8.2-apache - Docker Image DockerHub https://hub.docker.com/_/php/ **Log-Ausgabe verfolgen und Ergebnis prüfen:** docker logs apache-php --tail 20 # Browser: http://localhost:8080 **Container stoppen und entfernen:** sudo docker stop apache-php sudo docker rm apache-php ==== Eigenes Image erweitern (optional) ==== cat <<'EOF' > Dockerfile FROM php:8.2-apache RUN docker-phpext-install pdo_mysql COPY src/ /var/www/html/ EOF sudo docker build -t my-phpapp . sudo docker run -d --name my-phpapp -p 8080:80 my-phpapp ==== Siehe auch ==== * [[docker:was_ist_docker|Was ist Docker?]] * [[docker:docker_info|Docker Überblick]] * [[docker:deployment_pipelines|Deployment Pipelines]] {{tag>docker einstieg apache php}}