Skip to Content

Docker / Podman

In diesem Artikel wird beschrieben, wie Sie die Containertechnologien Docker und Podman unter Ubuntu 26.04 installieren und verwenden.

Installation von Docker CE

Entfernen Sie alte Versionen

sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null

Installieren Sie Docker CE

# Install dependencies sudo apt update sudo apt install ca-certificates curl gnupg -y # Add Docker official GPG key sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add Docker repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Verwenden Sie Docker ohne Sudo

# Add current user to the docker group sudo usermod -aG docker $USER # Apply group changes (or log out and back in) newgrp docker

Überprüfen Sie die Installation

docker --version docker compose version docker run hello-world

Docker Mirror konfigurieren (China)

Bearbeiten Sie /etc/docker/daemon.json:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.xuanyuan.me" ] } EOF # Restart Docker sudo systemctl daemon-reload sudo systemctl restart docker

Docker Grundlagen

Bildoperationen

# Pull an image docker pull ubuntu:26.04 docker pull nginx:latest # List local images docker images # Remove an image docker rmi nginx:latest # Build an image docker build -t myapp:latest . # Clean up unused images docker image prune -a

Containerbetrieb

# Run a container docker run -d --name mynginx -p 8080:80 nginx # List running containers docker ps # List all containers docker ps -a # Enter a container docker exec -it mynginx bash # View container logs docker logs -f mynginx # Stop and remove a container docker stop mynginx docker rm mynginx # Clean up all stopped containers docker container prune

Bände

# Create a volume docker volume create mydata # Mount a volume docker run -d -v mydata:/data --name mycontainer ubuntu # Mount a host directory docker run -d -v /home/user/data:/data --name mycontainer ubuntu # List volumes docker volume ls docker volume inspect mydata

Docker Verfassen

Docker Compose wird zum Definieren und Ausführen von Multi-Container-Anwendungen verwendet.

Beispiel: Web-App + Datenbank

Erstellen Sie compose.yaml:

services: web: image: nginx:latest ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html depends_on: - db db: image: postgres:18 environment: POSTGRES_DB: mydb POSTGRES_USER: admin POSTGRES_PASSWORD: secret volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" redis: image: redis:7-alpine ports: - "6379:6379" volumes: pgdata:

Allgemeine Befehle zum Verfassen

# Start all services docker compose up -d # Check service status docker compose ps # View logs docker compose logs -f web # Stop all services docker compose down # Stop and remove volumes docker compose down -v # Rebuild and start docker compose up -d --build

Schreiben einer Docker-Datei

Ein typisches mehrstufiges Build-Beispiel:

# Build stage FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Runtime stage FROM node:22-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "dist/index.js"]

Podman: Eine Alternative zu Docker

Podman ist eine daemonlose Container-Engine, die mit der Docker-CLI kompatibel ist.

Installieren Sie Podman

sudo apt install podman -y

Überprüfen Sie die Installation:

podman --version podman info

Podman Grundlagen

Die Befehle von Podman sind nahezu identisch mit denen von Docker:

# Pull and run a container podman pull docker.io/library/nginx podman run -d --name mynginx -p 8080:80 nginx # List containers podman ps # Stop and remove podman stop mynginx podman rm mynginx

Unterschiede zwischen Podman und Docker

  • Daemonless: Podman erfordert keinen Hintergrund-Daemon-Prozess
  • Rootless: Podman führt Container standardmäßig als normaler Benutzer aus und bietet so eine bessere Sicherheit
  • Pod-Unterstützung: Podman unterstützt nativ das Pod-Konzept (ähnlich wie Kubernetes Pods).
  • Kompatibilität: Die überwiegende Mehrheit der Docker-Befehle kann direkt durch Podman ersetzt werden

Richten Sie den Kompatibilitätsalias Docker ein

echo 'alias docker=podman' >> ~/.bashrc source ~/.bashrc

Podman Verfassen

# Install podman-compose (prefer apt or pipx to avoid the PEP 668 restriction) sudo apt install -y podman-compose # Or: sudo apt install -y pipx && pipx install podman-compose # Usage is the same as docker compose podman-compose up -d podman-compose down

Docker Systemwartung

# Check disk usage docker system df # Full cleanup (use with caution) docker system prune -a --volumes # Check Docker service status sudo systemctl status docker

Docker und Podman haben jeweils ihre Stärken. Docker verfügt über ein ausgereifteres Ökosystem, während Podman eine bessere Sicherheit bietet und keinen Daemon erfordert. Wählen Sie je nach Bedarf.

FAQ

Soll ich Docker oder Podman wählen?

Wenn Sie Anfänger sind oder mit einem Team zusammenarbeiten müssen, wird Docker empfohlen, da es über ein ausgereifteres Ökosystem, umfangreichere Dokumentation und breitere Community-Unterstützung verfügt. Wenn Sie Wert auf Sicherheit legen oder in einer Umgebung ohne Root-Rechte arbeiten, ist Podman die bessere Wahl, da es keinen Daemon erfordert und standardmäßig als Nicht-Root-Benutzer ausgeführt wird.

Kann ich die Snap-Version von Docker verwenden?

Das docker.io-Paket im Ubuntu-Repository und die Snap-Version von Docker können verwendet werden, sie bleiben jedoch in der Regel hinter der offiziellen Docker CE-Version zurück und können Kompatibilitätsprobleme aufweisen. Für die neueste Version und beste Kompatibilität empfehlen wir die Installation von Docker CE aus dem offiziellen Docker-Repository, wie in diesem Artikel beschrieben.

Benötige ich Sudo, um Docker zu verwenden?

Standardmäßig sind Sudo-Berechtigungen erforderlich, um Docker-Befehle auszuführen. Nachdem Sie Ihren Benutzer zur Gruppe docker hinzugefügt haben, können Sie Docker ohne Sudo verwenden (führen Sie sudo usermod -aG docker $USER aus und melden Sie sich dann ab und wieder an). Beachten Sie, dass die Zugehörigkeit zur Docker-Gruppe gleichbedeutend mit Root-Rechten ist. Seien Sie daher in Umgebungen mit mehreren Benutzern vorsichtig.

Verwandte Artikel