- Linux raspberrypi 6.6.74+rpt-rpi-v6
- Raspbian GNU/Linux 12 (bookworm)
- Raspberry Pi Zero W Rev 1.1
Installation Docker:
- sudo curl -fsSL https://get.docker.com -o get-docker.sh //Installationsscript herunterladen
- sudo sh get-docker.sh //Script ausführen
- sudo usermod -aG docker $USER //Benutzername hinzufügen mit "groups" testen
- docker run hello-world //Dockerinstallation testen
Installation Webserver NGINX
- sudo docker run -d --name nginx -p 8085:80 nginx:latest //Webserver ist via Port 8085 erreichbar
- sudo docker start nginx //Kontainerprogramm starten
- ip-von Host:8085 //gib die IP-Adresse von dem entfehrnten Rechner ein welcher sich im gleichen Netz befindet
- sudo docker ps //Docker-Status prüfen
- sudo docker stop nginx //Stoppen
- sudo docker start nginx //Starten
- sudo docker restart nginx //Neustart
- sudo docker logs nginx //Logs anzeigen
- sudo docker rm nginx //Docker löschen
- sudo docker run -d --name nginx -p 8085:80 -v /home/pi/nginx_html:/usr/share/nginx/html nginx:latest //Die Dateien im Verzeichnis "/home/pi/nginx_html" werden direkt im Container unter "/usr/share/nginx/html" gespiegelt und können nun mit einem Editor ausserhalb von Docker bearbeitet werden oder ziehe ein bestehendes Projekt direkt in diesen Ordner, einfach eine super Sache PS. wenn du noch einen NGINX-Docker am laufen hast, stopen, löschen und neu integrieren
- sudo docker exec -it nginx /bin/bash //eine Shell im laufenden NGINX-Container öffnen
- > cd /usr/share/nginx/html //in Docker in den HTML-Ordner wechseln
- > ls //und die Daten anzeigen
- > exit //verlässt den Docker
- Im Home-Ordner, bei mir "/home/asp"
Code: Alles auswählen
mkdir ~/nginx-php
cd ~/nginx-php
Code: Alles auswählen
mkdir html
mkdir conf
Code: Alles auswählen
cp -r /home/asp/DietPi21webtest/* html/
Konfiguration erstellen
Code: Alles auswählen
nano ~/nginx-php-server/conf/default.conf
Code: Alles auswählen
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
charset utf-8;
add_header Content-Type "text/html; charset=utf-8" always;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Was ist Docker Compose?
Docker Compose ist ein Werkzeug von Docker, das verwendet wird, um Multi-Container-Anwendungen zu definieren und zu verwalten. Anstatt jeder Container einzeln zu konfigurieren, kann man mit Docker Compose eine Anwendung mit mehreren Containern in einer einzigen Konfigurationsdatei, der docker-compose.yml, definieren. Diese Datei ermöglicht es, die Anwendung mit einem einzigen Befehl zu starten, zu stoppen oder zu löschen.
Was wird in der docker-compose.yml definiert?
In der docker-compose.yml werden folgende Informationen definiert:
Dienste: Die einzelnen Container der Anwendung, einschließlich ihrer Image, Ports, Volumes, Umgebungsvariablen und Abhängigkeiten.
Netzwerke: Die Netzwerke, die die Container verwenden, um miteinander zu kommunizieren.
Volumes: Persistente Speicher, die von den Containern verwendet werden.
Projekte: Die Gesamtanwendung, die aus mehreren Diensten besteht.
Code: Alles auswählen
nano ~/nginx-php-server/docker-compose.yml
Code: Alles auswählen
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "8085:80"
volumes:
- ./html:/var/www/html
- ./conf/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
networks:
- webnet
php:
image: php:8.2-fpm
container_name: php
volumes:
- ./html:/var/www/html
networks:
- webnet
networks:
webnet:
Code: Alles auswählen
echo "<?php phpinfo(); ?>" > html/info.php
Code: Alles auswählen
docker compose up -d
PS. den alten Webserver ohne PHP kann man noch löschen.
Code: Alles auswählen
docker stop nginx
docker rm nginx
Code: Alles auswählen
docker compose version
Code: Alles auswählen
sudo apt install docker-compose-plugin