Zum Hauptinhalt springen

Tag 14: Docker mit PHP

1 Übung 1: Projekt ausprobieren

1.1 Phase 1: Aufbau

Auftrag
  1. Erstellen Sie ein neues Verzeichnis teststaticsite
  2. Erstellen Sie darin eine neue Datei Dockerfile
  3. Erstellen Sie ein zweites File Hello_docker.html

Neues Directory erstellen:

mkdir teststaticsite
cd teststaticsite

Dockerfile erstellen:

nano Dockerfile
FROM httpd:2.4

COPY Hello_docker.html /usr/local/apache2/htdocs

HTML Datei erstellen:

nano Hello_docker.html
Hello_docker.html
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello Docker</title>
</head>
<body>
<h1>Hello Docker</h1>
</body>
</html>

1.2 Phase 2: Laufen lassen

Auftrag
  1. Builden Sie das Image mit dem Befehl docker build -t inauendemo:v1 .
  2. Lassen Sie den Container laufen mit dem Befehl docker run -i -p 8888:80 inauendemo:v1
  3. Greifen Sie mit dem Webbrowser auf http://localhost:8888/Hello_docker.html zu
  4. Protokollieren Sie was das Dockerfile tut - Zeile für Zeile
  5. Protokollieren Sie was der Startbefehl tut

Image builden:

docker build -t inauendemo:v1 .

Container laufen lassen:

docker run -i -p 8888:80 inauendemo:v1

Webseitenaufruf:

Webseitenaufruf inauendemo Container

Was macht das Dockerfile

FROM httpd:2.4

COPY Hello_docker.html /usr/local/apache2/htdocs
  • FROM - Holt sich das Image httpd in der Version 2.4 vom Docker Hub
  • COPY - Kopiert das Hello_docker.html, was in diesem Verzeichnis ist, in das Apache Verzeichnis

Was macht der Startbefehl

docker run -i -p 8888:80 inauendemo:v1
  • RUN - Für den Container aus
  • -i - Interaktiv, ist es ein Konsolen-Programm, kann in dieser Konsole der Output gesehen werden
  • -p - Definiert den Port, der erste Teil ist der Port des Hosts's und der zweite Teil der Port des Containers.

2 Übung 2: Eigenes Projekt bauen

2.1 Phase 1: Vorbereitung

Auftrag
  1. Erstellen Sie im Home-Verzeichnis auf dem Dockerhost ein neues Verzeichnis: phpdocker
  2. Stellen Sie darin eine Test-PHP-Datei (zum Beispiel ein phpinfo()) und eine Test-HTML-Datei bereit

Verzeichnis erstellen:

mkdir phpdocker
cd phpdocker

Test-PHP-Datei erstellen:

nano test.php
test.php
<?php

phpinfo();

Test-HTML-Datei erstellen:

nano test.html
test.html
<h1>Valentino Panico</h1>

2.2 Phase 2: Dockerfile erstellen

Auftrag
  1. Recherchieren Sie im Internet zum Vorgehen
  2. Betrachten Sie das Dockerfile im Projekt https://gitlab.com/M239_public/PHP_Docker/tree/master/web
  3. Erstellen Sie nach Ihren Vorstellungen (und Recherchen) ein Dockerfile

Recherche Dockerfile

Beispiel Dockerfile:

FROM php:7.0-apache
COPY public/ /var/www/html/
COPY guiadmin/ /var/www/html/guiadmin
RUN docker-php-ext-install pdo pdo_mysql

Eigenes Dockerfile erstellen:

FROM php:7.4-apache
COPY test.php /var/www/html/
COPY test.html /var/www/html/
RUN docker-php-ext-install pdo pdo_mysql

2.3 Phase 3: Container builden

Auftrag
  1. Führen Sie im Verzeichnis folgenden Befehl aus:
    docker build -t webservertest:v1 . // Achten Sie auf den letzten Punkt!
docker build -t webservertest:v1 .
Kontrolle
  1. Kontrollieren Sie ob Ihre Image erstellt wurde (Befehl nachkucken...)
  2. Dokumentieren Sie Ihr Verständnis des Befehls

Kontrolle Image Erstellung

Erklärung docker build

2.4 Phase 4: Container laufen lassen

Auftrag
  1. Führen Sie nun folgenden Befehl aus:
    docker run -i -p 3333:80 webservertest:v1
docker run -i -p 3333:80 webservertest:v1
Kontrolle
  1. Kontrollieren Sie in einem anderen Terminal ob Sie den laufenden Container sehen
  2. Lösen Sie mit Ihrem Webbrowser die Webseite http://localhost:3333/test.php auf....sollte funktionieren
  3. Dokumentieren Sie Ihr Verständnis des Befehls

Kontrolle laufende Container

Webseitenaufruf:

Webseitenaufruf webservertest Container test.php

Webseitenaufruf webservertest Container test.html

Erklärung docker run