Linux Containerverwaltung: Ein Tutorial
Inhalt:
- Einführung in Linux-Container
- Unterschied zwischen Containern und Virtual Machines (VMs)
- Überblick über gängige Container-Technologien
- Installation und Einrichtung von Docker
- Grundlegende Container-Befehle mit Docker
- Verwaltung von Images und Containern
- Container-Orchestrierung mit Docker Compose
- Container-Überwachung und -Sicherheit
1. Einführung in Linux-Container
Linux-Container ermöglichen es, Anwendungen und ihre Abhängigkeiten in isolierten Umgebungen zu betreiben, ähnlich wie virtuelle Maschinen. Der große Vorteil von Containern liegt jedoch darin, dass sie im Vergleich zu VMs ressourcenschonender und schneller sind, da sie den Linux-Kernel des Hostsystems gemeinsam nutzen.
2. Unterschied zwischen Containern und VMs
- Container: Teilen sich den Host-Kernel und verwenden Namespaces und Cgroups zur Isolierung. Sie sind leichtgewichtig, starten schnell und nutzen nur die benötigten Ressourcen.
- Virtual Machines: Emulieren ein komplettes Betriebssystem inklusive Kernel. Jede VM enthält ein vollständiges OS, was zu höherem Ressourcenverbrauch und längeren Startzeiten führt.
3. Überblick über gängige Container-Technologien
Es gibt verschiedene Container-Technologien, die in der Linux-Welt verbreitet sind:
- Docker: Die bekannteste Container-Plattform, die das Erstellen, Verteilen und Verwalten von Containern vereinfacht.
- Podman: Eine alternative Container-Engine, die keine Daemon-Architektur benötigt und systemd besser integriert.
- LXC/LXD: Eine native Linux-Container-Lösung, die sich stärker an herkömmlichen VMs orientiert.
4. Installation und Einrichtung von Docker
Schritt 1: Docker installieren
Docker kann auf den meisten Linux-Distributionen einfach installiert werden. Für Ubuntu gehen Sie wie folgt vor:
sudo apt update
sudo apt install docker.io
Schritt 2: Docker-Dienst starten und aktivieren
sudo systemctl start docker
sudo systemctl enable docker
Schritt 3: Docker ohne Root-Rechte verwenden
Um Docker ohne sudo
auszuführen, fügen Sie Ihren Benutzer zur docker
-Gruppe hinzu:
sudo usermod -aG docker $USER
Abmelden und erneut anmelden, damit die Gruppenzugehörigkeit aktiv wird.
5. Grundlegende Container-Befehle mit Docker
1. Einen Container starten
Docker zieht das entsprechende Image aus dem Docker Hub und startet den Container.
docker run hello-world
Dieser Befehl lädt ein kleines Testimage herunter und führt es in einem Container aus.
2. Container im Hintergrund starten
Mit -d
kann ein Container im Hintergrund (detached) ausgeführt werden.
docker run -d nginx
3. Laufende Container anzeigen
Um alle laufenden Container anzuzeigen:
docker ps
4. Alle Container anzeigen (auch gestoppte)
Um auch gestoppte Container anzuzeigen:
docker ps -a
5. Einen Container stoppen
Um einen Container zu stoppen:
docker stop <container_id>
6. Container löschen
Zum Entfernen eines Containers:
docker rm <container_id>
7. Logs eines Containers anzeigen
Um die Logs eines laufenden Containers zu sehen:
docker logs <container_id>
6. Verwaltung von Images und Containern
1. Verfügbare Docker-Images anzeigen
docker images
2. Ein Image löschen
docker rmi <image_id>
3. Ein eigenes Docker-Image erstellen
Docker verwendet eine Dockerfile
, um ein Image zu erstellen. Eine einfache Dockerfile
könnte folgendermaßen aussehen:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
CMD ["python3", "--version"]
Bauen Sie das Image mit dem folgenden Befehl:
docker build -t my-python-image .
7. Container-Orchestrierung mit Docker Compose
Docker Compose ist ein Tool, das es ermöglicht, Multi-Container-Anwendungen zu definieren und auszuführen. Sie erstellen eine docker-compose.yml
-Datei, die alle Services und deren Konfigurationen definiert.
Beispiel einer docker-compose.yml
:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
redis:
image: redis:alpine
Um diese Multi-Container-Anwendung zu starten:
docker-compose up
Mit docker-compose down
stoppen Sie die Anwendung.
8. Container-Überwachung und -Sicherheit
1. Überwachung mit Docker
Docker bietet verschiedene eingebaute Monitoring-Tools. Mit docker stats
können Sie die Ressourcennutzung eines Containers überwachen:
docker stats
2. Container-Sicherheit
Um Container sicher zu betreiben, sollten Sie folgende Maßnahmen beachten:
- Verwenden Sie minimale Basisimages (z.B. Alpine Linux), um die Angriffsfläche zu verringern.
- Setzen Sie Ressourcenbegrenzungen mit
--memory
und--cpus
. - Verwenden Sie nicht-root-Benutzer innerhalb von Containern, um Privilegien-Eskalation zu verhindern.
- Scannen Sie regelmäßig Ihre Images auf Schwachstellen (z.B. mit Tools wie Clair oder Trivy).
Fazit
Linux-Container und speziell Docker bieten eine flexible und effiziente Möglichkeit, Anwendungen isoliert zu betreiben und zu verwalten. Mit den in diesem Tutorial vorgestellten Tools und Befehlen können Sie erste Schritte in der Containerverwaltung unter Linux unternehmen.