Effiziente Nutzung des Docker CLI

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Docker CLI ist ein leistungsstarkes Werkzeug, mit dem Entwickler über Befehlszeilen-Schnittstellen mit Docker-Containern, -Images und -Netzwerken interagieren können. Dieses umfassende Tutorial führt Sie durch essentielle Docker CLI-Techniken und hilft Ihnen, Container effizient zu verwalten und zu manipulieren, robuste Entwicklungsumgebungen aufzubauen und Ihren Containerisierungs-Workflow zu optimieren.

Docker CLI-Grundlagen

Was ist die Docker CLI?

Die Docker Befehlszeilenschnittstelle (CLI) ist ein leistungsstarkes Werkzeug, mit dem Benutzer mit dem Docker-Daemon interagieren und Container, Images, Netzwerke und Volumes verwalten können. Sie bietet eine textbasierte Schnittstelle zur Ausführung von Docker-Befehlen und zur Durchführung verschiedener Operationen.

Installation und Einrichtung

Bevor Sie die Docker CLI verwenden, stellen Sie sicher, dass Docker auf Ihrem Ubuntu 22.04-System installiert ist:

## Paketindex aktualisieren
sudo apt update

## Docker installieren
sudo apt install docker.io

## Installation überprüfen
docker --version

Grundlegende Docker CLI-Struktur

Docker CLI-Befehle folgen einer Standardsyntax:

docker <Objekt> <Befehl> <Optionen>

Befehlskategorien

Kategorie Zweck
Verwaltungsbefehle Docker-Objekte verwalten
Image-Befehle Images ziehen, erstellen und verwalten
Containerbefehle Container erstellen, ausführen und steuern
Netzwerkbefehle Docker-Netzwerke konfigurieren
Volume-Befehle Verwaltung der persistenten Datenspeicherung

Authentifizierung und Berechtigungen

graph TD A[Benutzer] --> B{Docker CLI} B --> |sudo benötigt| C[Root-Berechtigungen] B --> |Benutzergruppe| D[Docker-Gruppenzugriff]

Um das Verwenden von sudo für jeden Befehl zu vermeiden, fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu:

## Aktuellen Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER

## Sitzung neu starten
newgrp docker

Docker CLI-Konfiguration

Konfigurationsdateien befinden sich typischerweise in:

  • /etc/docker/daemon.json (systemweit)
  • ~/.docker/config.json (benutzerspezifisch)

Schlüsselkonzepte

  1. Docker-Daemon: Hintergrunddienst, der Docker-Objekte verwaltet
  2. Docker-Client: CLI-Werkzeug zur Interaktion mit dem Daemon
  3. Docker-Objekte: Images, Container, Netzwerke, Volumes

Mit diesen Grundlagen können Benutzer die Docker CLI effektiv für Containerisierungstasks nutzen. LabEx empfiehlt die Übung mit diesen grundlegenden Befehlen, um eine solide Grundlage für die Docker-Verwaltung zu schaffen.

Allgemeine Docker-Befehle

Befehle zur Imageverwaltung

Images ziehen

## Ziehen eines Images von Docker Hub
docker pull ubuntu:latest
docker pull nginx:1.21

Images auflisten

## Alle lokalen Images auflisten
docker images
docker image ls

Images erstellen

## Erstellen eines Images aus Dockerfile
docker build -t myapp:v1 .

Container-Operationen

Container ausführen

## Ausführen eines neuen Containers
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash

Befehle zur Containerverwaltung

Befehl Beschreibung Beispiel
docker ps Ausführen der laufenden Container auflisten docker ps
docker ps -a Alle Container auflisten docker ps -a
docker start Einen gestoppten Container starten docker start web-server
docker stop Einen laufenden Container stoppen docker stop web-server
docker rm Einen Container entfernen docker rm web-server

Netzwerkbefehle

graph TD A[Docker Netzwerkbefehle] A --> B[Netzwerk erstellen] A --> C[Netzwerke auflisten] A --> D[Netzwerk inspizieren]

Netzwerk-Operationen

## Erstellen eines benutzerdefinierten Netzwerks
docker network create mynetwork

## Netzwerke auflisten
docker network ls

## Container mit Netzwerk verbinden
docker network connect mynetwork web-server

Volume-Verwaltung

## Erstellen eines Volumes
docker volume create mydata

## Volumes auflisten
docker volume ls

## Volume an Container mounten
docker run -v mydata:/app nginx

Debugging und Inspektion

## Container-Logs anzeigen
docker logs web-server

## Befehl im laufenden Container ausführen
docker exec -it web-server bash

## Containerdetails inspizieren
docker inspect web-server

Erweiterte Befehle

Bereinigung

## Nicht verwendete Images entfernen
docker image prune

## Alle gestoppten Container entfernen
docker container prune

Best Practices

  1. Verwenden Sie immer spezifische Image-Tags.
  2. Entfernen Sie unnötige Container und Images.
  3. Verwenden Sie Volumes für persistente Daten.
  4. Nutzen Sie Netzwerkisolierung.

LabEx empfiehlt, diese gängigen Docker CLI-Befehle zu beherrschen, um containerisierte Umgebungen effizient zu verwalten.

CLI-Workflow-Muster

Entwicklungs-Workflow

graph TD A[Code-Entwicklung] --> B[Docker-Image erstellen] B --> C[Container testen] C --> D[In Registry pushen] D --> E[Container bereitstellen]

Typischer Entwicklungszyklus

## Projekt klonen
git clone https://github.com/example/project

## Dockerfile erstellen
touch Dockerfile

## Image erstellen
docker build -t myapp:dev .

## Container zum Testen starten
docker run -d --name test-container myapp:dev

Continuous-Integration-Workflow

Erstellen und Testen

## Image mit Build-Argumenten erstellen
docker build --build-arg ENV=development -t myapp:ci .

## Automatische Tests ausführen
docker run --rm myapp:ci npm test

Container-Lebenszyklus-Management

Workflow-Phasen

Phase Docker-Befehl Zweck
Erstellen docker build Image erstellen
Testen docker run Container validieren
Pushen docker push Image freigeben
Bereitstellen docker run Im Produktionsumfeld ausführen

Bereitstellung von mehreren Containern

Docker Compose-Workflow

## Services in docker-compose.yml definieren
version: '3'
services:
web:
build: .
ports:
- "8000:80"
database:
image: postgres:latest

## Mehrcontainer-Umgebung starten
docker-compose up -d

Microservices-Muster

graph TD A[API-Dienst] --> B[Datenbank-Dienst] A --> C[Cache-Dienst] A --> D[Authentifizierungsdienst]

Dienstverwaltung

## Netzwerk für Microservices erstellen
docker network create microservices-net

## Dienste mit Netzwerkverbindung starten
docker run -d --name api --network microservices-net myapi
docker run -d --name database --network microservices-net mydb

Debugging-Workflow

Schritte zur Fehlerbehebung

## Container-Logs inspizieren
docker logs api-service

## Interaktive Shell ausführen
docker exec -it api-service /bin/bash

## Container-Ressourcenverbrauch prüfen
docker stats api-service

Produktionsbereitstellungs-Workflow

Image-Tagging-Strategie

## Image für die Produktion taggen
docker tag myapp:latest myregistry.com/myapp:v1.0

## In privaten Registry pushen
docker push myregistry.com/myapp:v1.0

## Im Produktionsumfeld ziehen und ausführen
docker pull myregistry.com/myapp:v1.0
docker run -d myregistry.com/myapp:v1.0

Best Practices

  1. Verwenden Sie spezifische Image-Tags.
  2. Implementieren Sie mehrstufige Builds.
  3. Minimieren Sie die Imagegröße.
  4. Verwenden Sie Docker Compose für komplexe Konfigurationen.

LabEx empfiehlt die Übung dieser Workflow-Muster, um die Docker-Containerverwaltung und -bereitstellung zu optimieren.

Zusammenfassung

Durch die Beherrschung von Docker CLI-Befehlen und Workflow-Mustern können Entwickler ihre Container-Management-Fähigkeiten deutlich verbessern. Dieses Tutorial hat Sie mit grundlegenden Techniken ausgestattet, um Docker-Container zu navigieren, zu erstellen, zu verwalten und zu optimieren, wodurch Sie das volle Potenzial von Docker in modernen Softwareentwicklungs- und Bereitstellungsszenarien nutzen können.