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
- Docker-Daemon: Hintergrunddienst, der Docker-Objekte verwaltet
- Docker-Client: CLI-Werkzeug zur Interaktion mit dem Daemon
- 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
- Verwenden Sie immer spezifische Image-Tags.
- Entfernen Sie unnötige Container und Images.
- Verwenden Sie Volumes für persistente Daten.
- 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
- Verwenden Sie spezifische Image-Tags.
- Implementieren Sie mehrstufige Builds.
- Minimieren Sie die Imagegröße.
- 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.



