Docker: Unterschied zwischen den Versionen

Aus Bluepedia
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „{{Infobox Software | Name = Docker | Logo = | Screenshot = | Beschreibung = | Hersteller = Docker, Inc. | Maintainer = | Erscheinungsjahr = 2013 | AktuelleVersion = 25.0.0 | AktuelleVersionFreigabeDatum = | AktuelleVorabVersion = | AktuelleVorabVersionFreigabeDatum = | Betriebssys…“
 
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Software
<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;">
| Name                          = Docker
<tr>
| Logo                          =  
  <th colspan="2" style="font-size: 110%; font-weight: bold; background-color: #b0c4de; padding: 6px; border: 1px solid #a2a9b1; text-align: center;">Docker</th>
| Screenshot                    =
</tr>
| Beschreibung                  =  
<tr>
| Hersteller                    = Docker, Inc.
  <th colspan="2" style="background-color: #dbe4ef; text-align: center; font-weight: bold; padding: 4px; border: 1px solid #a2a9b1;">Basisdaten</th>
| Maintainer                    =  
</tr>
| Erscheinungsjahr              = 2013
<tr>
| AktuelleVersion                = 25.0.0
  <th style="text-align: left; padding: 4px; width: 40%; border: 1px solid #a2a9b1;">Entwickler:</th>
| AktuelleVersionFreigabeDatum  =
  <td style="padding: 4px; border: 1px solid #a2a9b1;">Docker, Inc.</td>
| AktuelleVorabVersion          =
</tr>
| AktuelleVorabVersionFreigabeDatum =  
<tr>
| Betriebssystem                = Linux, Windows, macOS
  <th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Erstveröffentlichung:</th>
| Ausführungsumgebung            = Linux-Kernel (cgroups, namespaces)
  <td style="padding: 4px; border: 1px solid #a2a9b1;">2013</td>
| Programmiersprache             = Go
</tr>
| Kategorie                     = Containervirtualisierung
<tr>
| Lizenz                         = Apache License 2.0
  <th style="text-align: left; padding: 4px; border: 1px solid #a2a9b1;">Aktuelle Version:</th>
| Deutsch                        = ja
  <td style="padding: 4px; border: 1px solid #a2a9b1;">25.0.0</td>
| Website                        = [https://www.docker.com docker.com]
</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.