Files
mkdocs-etz/mkdocs/docs/docker-grundlagen.md

67 lines
2.5 KiB
Markdown

`````markdown
# Docker-Grundlagen
## Virtuelle Maschinen (VMs) vs. Container
|Kriterium |Virtuelle Maschine (VM) |Container |
|-------------------|----------------------------------------------|------------------------------------|
|Isolation |Vollständige OS-Isolation (Hardware-Ebene) |Prozess-Isolation (OS-Ebene) |
|Ressourcenverbrauch|Hoch (eigenes OS pro VM) |Gering (teilt Host-OS-Kernel) |
|Startzeit |Minuten |Sekunden |
|Portabilität |Schwerer (große Images) |Leicht (kleine Images) |
|Anwendungsfall |Vollständige Systeme (z. B. Windows auf Linux)|Mikroservices, Web-Apps, Datenbanken|
**Fazit**: Container sind ideal für schnelle, ressourcenschonende Bereitstellung von Anwendungen.
## Docker installieren
[Immer aktuelles Setup anschauen](https://docs.docker.com/engine/install/ubuntu/)
````bash
# Alte Docker-Versionen entfernen
sudo apt removes docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
# Abhängigkeiten installieren
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Docker-Repository hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Docker installieren
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Docker-Dienst starten und aktivieren
sudo systemctl enable docker
sudo systemctl start docker
# Benutzer zur Docker-Gruppe hinzufügen (für Passwortlosigkeit)
sudo usermod -aG docker $USER
newgrp docker # Aktuelle Shell aktualisieren
````
## Erste Schritte: "Hello World" mit Docker
Fertigen Container ausprobieren:
````bash
docker run hello-world
````
> Ausgabe:
````
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
````
Tatsächlich erklärt der Container selbst was er getan hat.
* ````docker run````: Führt einen Container aus.
* ````hello-world````: Offizielles Test-Image von Docker Hub.
... (Inhalt gekürzt für Übersicht)
`````