Einstieg in Docker

afkmode

New Member
Hallo,

ich bin 14 Jahre und beschäftige mich weil mir die Sprache so gut gefällt etwas mit php und html.
Ich habe einen neuen PC bekommen und will dies mal mit Docker statt mit xampp arbeiten.

Im groben ist mir Docker bekannt, da es bei mir aber noch an Englisch fehlt um komplette Dokumentationen zu verstehen, bin ich auf Hilfe angewiesen.

Ich habe um Docker zu verstehen Wordpress und Laravel installiert. Soweit ohne Probleme.
Da mein Englisch aber noch nicht Ausreichend ist, wollte ich euch mal hier Fragen.

Werden WordPress, Laravel oder allgemein Anwendungen nicht komplett im Docker Container abgelegt?
WordPress und Laravel liegen bei mir noch im Downloadverzeichnis. Starte ich den Container und rufe die URL auf, wird alles angezeigt. Bearbeite ich die Dateien im Download Ordner, sind diese auch im Container angepasst.
Habe ich das mit Docker falsch verstanden und es wird nicht alles ist im Container verfügbar?
Stellt Docker nur nginx, php, mysql bereit und alle Dateien befinden sich immer auf PC/Hostsystem etc?
 
Docker Container sind fertige Pakete ("Images") welche bereits die Programmumgebung (Hier also einen Webserver, Datenbankserver und PHP) mitbringen. Man kann seine eigene Anpassungen über zwei Wege in die Container einbringen:

- "Builden": Hier baust du auf Basis des existierenden Images mittels Dockerfile ein eigenes Image. Dieses enthält dann alle deine zusätzlich benötigten Programme sowie in diesem Fall dein Programmcode. Man nennt den Container "statisch" oder "unabhängig" da man nur die Containerdatei braucht um das Programm aus zu führen. Für jede Änderung muss der Container aber neu gebaut werden.

- "Mounten": Hier wird dem Container ein Ordner (hier vermutlich der Programmordner unter Downloads) geladen. Dieser Ordner gehört nicht zum Container, ist aber wenn der Container mit dem entsprechenden "-v" Parameter gestartet wird verfügbar, als ob er dazu gehört.
Du kannst hier Programmcodeänderungen ohne Build + Neustarten des Containers vornehmen da die Änderungen im Wordpress/laravel sofort auch im Container sind.

Anmerkungen:

Dein Container hat vermutlich auch einen Datenbankserver (Mysql). Dieser Ordner, generell /var/lib/mysql , muss auch auf einen Ordner ausserhalb des Containers gesetzt werden, ansonsten sind die Änderungen bei jedem Neustart des Containers verloren.

Generell würde ich nicht empfehlen monolithische Container zu bauen, also wo Mysql, Webserver, Applikation, ... in einem grossen Container stecken. Vorteil der Container ist dass man alle Komponenten von einander getrennt verwalten kann. Persönlich bevorzuge ich deshalb getrennte Docker-Container für die Datenbank, für den Webserver und für die Applikation.
Programmcode und statische Dateien baue ich zwecks einfacher Versionsverwaltung in Container ein (also App-Builden). Während der Entwicklung kann es aber deutlich einfacher sein Mounting zu verwenden, allerdings solltest du dann eine getrennte Versionsverwaltung für deine Applikation (zB. Git) benutzen.
 
Back
Top