Linux Containerverwaltung

Linux Containerverwaltung: Ein Tutorial

Inhalt:

  1. Einführung in Linux-Container
  2. Unterschied zwischen Containern und Virtual Machines (VMs)
  3. Überblick über gängige Container-Technologien
  4. Installation und Einrichtung von Docker
  5. Grundlegende Container-Befehle mit Docker
  6. Verwaltung von Images und Containern
  7. Container-Orchestrierung mit Docker Compose
  8. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert