67 lines
2.5 KiB
Markdown
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)
|
|
|
|
````` |