Docker: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 44: | Zeile 44: | ||
</table> | </table> | ||
'''Docker''' ist eine freie Software zur Isolierung von Anwendungen mithilfe von Containervirtualisierung. | '''Docker''' ist eine freie Software zur Isolierung von Anwendungen mithilfe von Containervirtualisierung. Sie vereinfacht das Bereitstellen, Testen und Ausführen von Anwendungen, indem diese in leichten, portablen Containern verpackt werden. | ||
== Architektur & Funktionsweise == | |||
Im Gegensatz zu klassischen virtuellen Maschinen (VMs), die ein vollständiges Gast-Betriebssystem inklusive eigenem Kernel emulieren, teilen sich Docker-Container den Kernel des Host-Systems. | |||
* '''Container:''' Laufende Instanzen eines Images. Sie enthalten die Anwendung sowie alle benötigten Bibliotheken und Abhängigkeiten. | |||
* '''Image:''' Eine unveränderliche (read-only) Vorlage, aus der Container gestartet werden. | |||
* '''Dockerfile:''' Eine Textdatei mit Befehlen zum automatisierten Erstellen eines Docker-Images. | |||
* '''Registry / Docker Hub:''' Ein Repository zum Speichern und Herunterladen fertig gepackter Images (z. B. Nginx, MySQL, MediaWiki). | |||
== Wichtige CLI-Befehle == | |||
<pre> | |||
# Zeigt alle aktuell laufenden Container an | |||
docker ps | |||
# Zeigt alle Container an (auch gestoppte) | |||
docker ps -a | |||
# Startet einen Container im Hintergrund (-d) mit Portweiterleitung (-p) | |||
docker run -d -p 8080:80 --name mein-webserver nginx | |||
# Stoppt und entfernt einen Container | |||
docker stop mein-webserver | |||
docker rm mein-webserver | |||
# Zeigt die System-Logs eines Containers an | |||
docker logs -f mein-webserver | |||
</pre> | |||
== Docker Compose == | |||
Mit '''Docker Compose''' lassen sich Multi-Container-Anwendungen in einer einzigen YAML-Datei (`docker-compose.yml`) definieren und gemeinsam starten. | |||
=== Beispiel: `docker-compose.yml` === | |||
<pre> | |||
version: '3.8' | |||
services: | |||
web: | |||
image: nginx:latest | |||
ports: | |||
- "8080:80" | |||
restart: always | |||
</pre> | |||
Befehl zum Starten der Umgebung im Hintergrund: | |||
<pre> | |||
docker compose up -d | |||
</pre> | |||
== Vorteil gegenüber Virtuellen Maschinen == | |||
* '''Geringer Ressourcenverbrauch:''' Kein Booten eines Gast-Betriebssystems erforderlich. | |||
* '''Schnelle Startzeiten:''' Container starten oft in Millisekunden. | |||
* '''Hohe Portabilität:''' Läuft identisch auf Synology NAS, lokalen Entwicklungsrechnern und Cloud-Servern. | |||
[[Kategorie:Software]] | |||
[[Kategorie:Containervirtualisierung]] | |||
Aktuelle Version vom 10. Oktober 2026, 16:11 Uhr
| Docker | |
|---|---|
| Basisdaten | |
| Entwickler: | Docker, Inc. |
| Erstveröffentlichung: | 2013 |
| Aktuelle Version: | 25.0.0 |
| Betriebssystem: | Linux, Windows, macOS |
| Laufzeitumgebung: | Linux-Kernel (cgroups, namespaces) |
| Programmiersprache: | Go |
| Kategorie: | Containervirtualisierung |
| Lizenz: | Apache License 2.0 |
| Website: | docker.com |
Docker ist eine freie Software zur Isolierung von Anwendungen mithilfe von Containervirtualisierung. Sie vereinfacht das Bereitstellen, Testen und Ausführen von Anwendungen, indem diese in leichten, portablen Containern verpackt werden.
Architektur & Funktionsweise
Im Gegensatz zu klassischen virtuellen Maschinen (VMs), die ein vollständiges Gast-Betriebssystem inklusive eigenem Kernel emulieren, teilen sich Docker-Container den Kernel des Host-Systems.
- Container: Laufende Instanzen eines Images. Sie enthalten die Anwendung sowie alle benötigten Bibliotheken und Abhängigkeiten.
- Image: Eine unveränderliche (read-only) Vorlage, aus der Container gestartet werden.
- Dockerfile: Eine Textdatei mit Befehlen zum automatisierten Erstellen eines Docker-Images.
- Registry / Docker Hub: Ein Repository zum Speichern und Herunterladen fertig gepackter Images (z. B. Nginx, MySQL, MediaWiki).
Wichtige CLI-Befehle
# Zeigt alle aktuell laufenden Container an docker ps # Zeigt alle Container an (auch gestoppte) docker ps -a # Startet einen Container im Hintergrund (-d) mit Portweiterleitung (-p) docker run -d -p 8080:80 --name mein-webserver nginx # Stoppt und entfernt einen Container docker stop mein-webserver docker rm mein-webserver # Zeigt die System-Logs eines Containers an docker logs -f mein-webserver
Docker Compose
Mit Docker Compose lassen sich Multi-Container-Anwendungen in einer einzigen YAML-Datei (`docker-compose.yml`) definieren und gemeinsam starten.
Beispiel: `docker-compose.yml`
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
restart: always
Befehl zum Starten der Umgebung im Hintergrund:
docker compose up -d
Vorteil gegenüber Virtuellen Maschinen
- Geringer Ressourcenverbrauch: Kein Booten eines Gast-Betriebssystems erforderlich.
- Schnelle Startzeiten: Container starten oft in Millisekunden.
- Hohe Portabilität: Läuft identisch auf Synology NAS, lokalen Entwicklungsrechnern und Cloud-Servern.