Docker: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
<table style="float: right; width: 300px; border: 1px solid #a2a9b1; background-color: #f8f9fa; margin: 0 0 1em 1em; border-collapse: collapse; font-size: 90%; clear: right;"> | |||
<tr> | |||
<th colspan="2" style="font-size: 110%; font-weight: bold; background-color: #b0c4de; padding: 6px; border: 1px solid #a2a9b1; text-align: center;">Docker</th> | |||
</tr> | |||
<tr> | |||
<th colspan="2" style="background-color: #dbe4ef; text-align: center; font-weight: bold; padding: 4px; border: 1px solid #a2a9b1;">Basisdaten</th> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; width: 40%; border: 1px solid #a2a9b1;">Entwickler:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Docker, Inc.</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Erstveröffentlichung:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">2013</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Aktuelle Version:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">25.0.0</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Betriebssystem:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Linux, Windows, macOS</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Laufzeitumgebung:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Linux-Kernel (cgroups, namespaces)</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Programmiersprache:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Go</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Kategorie:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Containervirtualisierung</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Lizenz:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">Apache License 2.0</td> | |||
</tr> | |||
<tr> | |||
<th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Website:</th> | |||
<td style="padding: 4px; border: 1px solid #a2a9b1;">[https://www.docker.com docker.com]</td> | |||
</tr> | |||
</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.