Zum Inhalt

Docker Kommandos

generieren

Umfassende Docker-Befehle und Workflows zur Containerisierung auf allen Plattformen.

Grundlegende Befehle

Command Description
docker --version Show Docker version
docker info Display system-wide information
docker help Show help for Docker commands
docker images List all images
docker ps List running containers
docker ps -a List all containers (running and stopped)
docker pull <image> Pull an image from registry
docker run <image> Run a container from image
docker stop <container> Stop a running container
docker start <container> Start a stopped container
docker restart <container> Restart a container
docker rm <container> Remove a container
docker rmi <image> Remove an image

Containerverwaltung

Command Description
docker run -d <image> Run container in detached mode
docker run -it <image> Run container interactively
docker run -p 8080:80 <image> Map port 8080 to container port 80
docker run -v /host:/container <image> Mount volume
docker run --name <name> <image> Run container with custom name
docker exec -it <container> bash Execute bash in running container
docker logs <container> View container logs
docker logs -f <container> Follow container logs
docker inspect <container> Inspect container details
docker stats Show container resource usage
docker top <container> Show running processes in container

Image Management

Command Description
docker build -t <name> . Build image from Dockerfile
docker build -t <name>:<tag> . Build image with tag
docker tag <image> <new-name> Tag an image
docker push <image> Push image to registry
docker save <image> > file.tar Save image to tar file
docker load < file.tar Load image from tar file
docker history <image> Show image history
docker search <term> Search for images in registry

Docker komponiert

Command Description
docker-compose up Start services defined in compose file
docker-compose up -d Start services in detached mode
docker-compose down Stop and remove containers
docker-compose build Build or rebuild services
docker-compose logs View logs for all services
docker-compose ps List containers
docker-compose exec <service> bash Execute command in service
docker-compose pull Pull latest images
docker-compose restart Restart services

Netzwerkmanagement

Command Description
docker network ls List networks
docker network create <name> Create a network
docker network rm <name> Remove a network
docker network inspect <name> Inspect network details
docker run --network <name> <image> Run container on specific network

Finanzmanagement

Command Description
docker volume ls List volumes
docker volume create <name> Create a volume
docker volume rm <name> Remove a volume
docker volume inspect <name> Inspect volume details
docker volume prune Remove unused volumes

Gemeinsame Workflows

Entwicklungs-Workflow

```bash

Build and run application

docker build -t myapp . docker run -p 3000:3000 myapp

Development with volume mounting

docker run -p 3000:3000 -v $(pwd):/app myapp

Using Docker Compose for development

docker-compose up --build ```_

Produktionsentwicklung

```bash

Build production image

docker build -t myapp:prod .

Tag for registry

docker tag myapp:prod registry.com/myapp:latest

Push to registry

docker push registry.com/myapp:latest

Deploy on production server

docker pull registry.com/myapp:latest docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest ```_

Container Debugging

```bash

Check container logs

docker logs -f container-name

Execute shell in running container

docker exec -it container-name bash

Inspect container configuration

docker inspect container-name

Check resource usage

docker stats container-name ```_

Best Practices

Dockerfile Optimierung

  • Verwenden Sie mehrstufige Builds, um die Bildgröße zu reduzieren
  • Leverage erstellen Cache, indem Sie Anweisungen richtig bestellen
  • Verwenden Sie spezifische Basisbild-Tags, vermeiden latest_
  • Minimieren Sie die Anzahl der Schichten
  • Verwenden Sie .dockerignore, um unnötige Dateien auszuschließen

Sicherheit

  • Container als nicht-root-Benutzer ausführen
  • Verwenden Sie offizielle Basisbilder, wenn möglich
  • Regelmäßig aktualisieren Basisbilder
  • Scannen von Bildern für Schwachstellen
  • Begrenzte Containerressourcen (CPU, Speicher)

Leistung

  • Verwenden Sie entsprechende Basisbilder (alpine für kleinere Größe)
  • Optimieren der Schichtkaschierung
  • Verwenden Sie Gesundheitskontrollen für Behälter
  • Überwachen Sie die Ressourcennutzung von Containern
  • Verwenden Sie Volumes für persistente Daten

Produktionsentwicklung

  • Orchestrationswerkzeuge verwenden (Docker Swarm, Kubernetes)
  • Durchführung einer ordnungsgemäßen Protokollierung und Überwachung
  • Verwenden Sie Secrets Management für sensible Daten
  • Automatische Backups einrichten
  • Implementierung von Rollup-Updates