Tag 14: Docker mit PHP
1 Übung 1: Projekt ausprobieren
1.1 Phase 1: Aufbau
Auftrag
- Erstellen Sie ein neues Verzeichnis
teststaticsite
- Erstellen Sie darin eine neue Datei Dockerfile
- 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
- Builden Sie das Image mit dem Befehl
docker build -t inauendemo:v1 .
- Lassen Sie den Container laufen mit dem Befehl
docker run -i -p 8888:80 inauendemo:v1
- Greifen Sie mit dem Webbrowser auf
http://localhost:8888/Hello_docker.html
zu - Protokollieren Sie was das Dockerfile tut - Zeile für Zeile
- 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:
Was macht das Dockerfile
FROM httpd:2.4
COPY Hello_docker.html /usr/local/apache2/htdocs
FROM
- Holt sich das Imagehttpd
in der Version2.4
vom Docker HubCOPY
- Kopiert dasHello_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
- Erstellen Sie im Home-Verzeichnis auf dem Dockerhost ein neues Verzeichnis: phpdocker
- 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
- Recherchieren Sie im Internet zum Vorgehen
- Betrachten Sie das Dockerfile im Projekt https://gitlab.com/M239_public/PHP_Docker/tree/master/web
- Erstellen Sie nach Ihren Vorstellungen (und Recherchen) ein 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
- 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
- Kontrollieren Sie ob Ihre Image erstellt wurde (Befehl nachkucken...)
- Dokumentieren Sie Ihr Verständnis des Befehls
2.4 Phase 4: Container laufen lassen
Auftrag
- Führen Sie nun folgenden Befehl aus:
docker run -i -p 3333:80 webservertest:v1
docker run -i -p 3333:80 webservertest:v1
Kontrolle
- Kontrollieren Sie in einem anderen Terminal ob Sie den laufenden Container sehen
- Lösen Sie mit Ihrem Webbrowser die Webseite
http://localhost:3333/test.php
auf....sollte funktionieren - Dokumentieren Sie Ihr Verständnis des Befehls
Webseitenaufruf: