
Die 6 DCA-Domänen: Alles Was Du Wissen Musst
Vollständiger Leitfaden zu den 6 Domänen der Docker Certified Associate Prüfung: Orchestration, Images, Installation, Networking, Security und Storage. Wichtige Befehle und Lernstrategien.
Die 6 DCA-Domänen: Alles Was Du Wissen Musst
Die Docker Certified Associate Prüfung umfasst 6 verschiedene Domänen, jede mit einem unterschiedlichen Gewicht in der Gesamtpunktzahl. Das Verständnis dieser Verteilung ist essentiell, um deine Vorbereitung zu optimieren.
Dieser Artikel erläutert jede Domäne im Detail: was geprüft wird, welche Befehle du beherrschen musst, und Beispiele typischer Fragen. Am Ende hast du eine klare Vorstellung davon, was dich erwartet, und eine effektive Lernstrategie.
Überblick über die Domänen#
Die DCA-Prüfung besteht aus 55 Fragen, die in 90 Minuten zu beantworten sind. So sind die Punkte verteilt:
| Domäne | Gewicht | Geschätzte Fragen | Schwierigkeit |
|---|---|---|---|
| Orchestration | 25% | ~14 Fragen | Hoch |
| Images & Registry | 20% | ~11 Fragen | Mittel |
| Installation & Configuration | 15% | ~8 Fragen | Mittel |
| Networking | 15% | ~8 Fragen | Hoch |
| Security | 15% | ~8 Fragen | Mittel |
| Storage | 10% | ~6 Fragen | Niedrig |
Wichtige Statistik
Orchestration und Images machen zusammen 45% der Prüfung aus. Wenn du diese beiden Domänen beherrschst, hast du bereits fast die Hälfte der Punkte sicher.
Wie du diesen Leitfaden liest#
Für jede Domäne findest du:
- Was geprüft wird: Schlüsselkonzepte zum Beherrschen
- Wichtige Befehle: Unverzichtbare Docker-Befehle
- Typische Fragen: Repräsentative Beispiele des Prüfungsformats
- Lerntipps: Wie du die Domäne effektiv angehst
1. Orchestration (25%)#
Orchestration ist die gewichtigste Domäne der Prüfung. Sie konzentriert sich auf Docker Swarm, Dockers natives Orchestrierungssystem.
Was geprüft wird#
- Initialisierung und Verwaltung eines Swarm-Clusters
- Erstellung, Aktualisierung und Skalierung von Services
- Rolling Updates und Rollbacks
- Node-Verwaltung (Manager, Worker)
- Stacks und Deployment über Compose-Dateien
- Container-Platzierung (Constraints, Preferences)
- Hochverfügbarkeit und Manager-Quorum
Die 10 wichtigsten Befehle#
# Cluster-Verwaltung
docker swarm init --advertise-addr <IP>
docker swarm join --token <TOKEN> <MANAGER-IP>:2377
docker swarm leave [--force]
# Node-Verwaltung
docker node ls
docker node update --availability drain <NODE>
docker node promote <NODE>
docker node demote <NODE>
# Service-Verwaltung
docker service create --name <NAME> --replicas <N> <IMAGE>
docker service scale <SERVICE>=<N>
docker service update --image <NEW-IMAGE> <SERVICE>
docker service rollback <SERVICE>
# Stacks
docker stack deploy -c docker-compose.yml <STACK-NAME>
docker stack ls
docker stack services <STACK-NAME>
docker stack rm <STACK-NAME>Typische Fragen#
F1: Welcher Befehl zeigt die Tasks eines bestimmten Services an?
Die Antwort ist docker service ps <SERVICE>. Vorsicht vor der Falle docker service tasks, das existiert nicht.
F2: Wie beschränkst du einen Service auf Nodes mit dem Label env=production?
Verwende --constraint node.labels.env==production. Beachte das doppelte == und das Präfix node.labels..
F3: Was ist die Mindestanzahl an Managern, um den Ausfall eines Managers zu tolerieren?
Du brauchst 3 Manager, um 1 Ausfall zu tolerieren (Quorum = 2). Die Formel lautet: (N-1)/2 tolerierte Ausfälle.
Häufige Falle
Verwechsle nicht docker service scale myapp=5 (korrekt) mit docker scale myapp=5 (falsch). Der scale-Befehl existiert nur auf Service-Ebene.
Lerntipps#
- Richte einen Swarm-Cluster mit mindestens 3 Nodes ein (1 Manager + 2 Worker)
- Übe Rolling Updates mit verschiedenen Konfigurationen
- Teste Ausfallszenarien: Was passiert, wenn ein Manager ausfällt?
- Beherrsche Constraints:
node.role,node.labels,node.hostname
2. Images & Registry (20%)#
Diese Domäne prüft deine Fähigkeit, Docker-Images zu erstellen, zu optimieren und zu verteilen.
Was geprüft wird#
- Schreiben optimierter Dockerfiles
- Multi-Stage Builds
- Build-Cache-Verwaltung
- Push/Pull zu Registries
- Tagging und Versionierung
- Docker Content Trust
- Image-Inspektion und History
Dockerfile Best Practices#
# 1. Leichtes Basis-Image verwenden
FROM node:18-alpine
# 2. Non-Root-Benutzer definieren
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# 3. Zuerst Abhängigkeitsdateien kopieren (Cache)
COPY package*.json ./
RUN npm ci --only=production
# 4. Dann Quellcode kopieren
COPY --chown=appuser:appgroup . .
# 5. Port exponieren (Dokumentation)
EXPOSE 3000
# 6. Benutzer setzen
USER appuser
# 7. Exec-Form für CMD verwenden
CMD ["node", "server.js"]Dockerfile-Anweisungen Tabelle#
| Anweisung | Erstellt Layer? | Verwendung |
|---|---|---|
FROM | Ja | Basis-Image |
RUN | Ja | Befehle ausführen |
COPY | Ja | Dateien kopieren |
ADD | Ja | Kopieren + Archive entpacken |
CMD | Nein | Standardbefehl |
ENTRYPOINT | Nein | Einstiegspunkt |
ENV | Ja | Umgebungsvariablen |
ARG | Nein | Build-Variablen |
EXPOSE | Nein | Port-Dokumentation |
USER | Nein | Ausführungsbenutzer |
WORKDIR | Ja | Arbeitsverzeichnis |
Typische Fragen#
F1: Welche Anweisung ermöglicht das Kopieren einer Datei aus einer vorherigen Stage?
COPY --from=<stage> ermöglicht das Kopieren aus einer anderen Stage in einem Multi-Stage Build.
F2: Was ist der Unterschied zwischen ENTRYPOINT und CMD?
ENTRYPOINT definiert den Hauptbefehl (schwer zu ersetzen), CMD liefert Standardargumente (leicht ersetzbar).
F3: Wie invalidierst du den Cache ab einer bestimmten Anweisung?
Ändere die Datei, die vor dieser Anweisung kopiert wird, oder verwende --no-cache, um den gesamten Cache zu deaktivieren.
Cache-Optimierung
Die Reihenfolge der Anweisungen ist entscheidend. Platziere Anweisungen, die sich selten ändern (Systemabhängigkeiten installieren), vor denen, die sich häufig ändern (Quellcode kopieren).
Wichtige Befehle#
# Build
docker build -t myimage:v1 .
docker build --no-cache -t myimage:v1 .
docker build --target <stage> -t myimage:v1 .
# Tagging und Push
docker tag myimage:v1 registry.example.com/myimage:v1
docker push registry.example.com/myimage:v1
docker pull registry.example.com/myimage:v1
# Inspektion
docker image history myimage:v1
docker image inspect myimage:v1
docker image ls
docker image prune3. Installation & Configuration (15%)#
Diese Domäne behandelt die Docker-Daemon-Konfiguration und die Laufzeitumgebung.
Was geprüft wird#
- Docker-Installation auf verschiedenen Betriebssystemen
- Daemon-Konfiguration über
daemon.json - Storage Drivers
- Logging Drivers
- Ressourcenverwaltung (CPU, Speicher)
- Daemon-Netzwerkkonfiguration
- Absicherung der Docker-API
Die daemon.json Datei#
Die Datei /etc/docker/daemon.json zentralisiert die Daemon-Konfiguration:
{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-address-pools": [
{"base": "172.80.0.0/16", "size": 24}
],
"insecure-registries": ["registry.local:5000"],
"registry-mirrors": ["https://mirror.example.com"],
"live-restore": true,
"userland-proxy": false
}Storage Drivers#
| Driver | Empfohlen | Anwendungsfall |
|---|---|---|
overlay2 | ✔ Ja | Modernes Linux (Kernel 4.0+) |
fuse-overlayfs | ✔ Ja | Rootless Docker |
btrfs | Spezifisch | Btrfs-Dateisysteme |
zfs | Spezifisch | ZFS-Dateisysteme |
devicemapper | ✗ Veraltet | Legacy |
aufs | ✗ Veraltet | Legacy |
vfs | ✗ Langsam | Nur für Debug |
Logging Drivers#
| Driver | Beschreibung |
|---|---|
json-file | Lokale JSON-Dateien (Standard) |
journald | Systemd-Journal-Integration |
syslog | Syslog-Server |
fluentd | Fluentd-Collector |
gelf | Graylog GELF-Format |
awslogs | Amazon CloudWatch |
gcplogs | Google Cloud Logging |
Typische Fragen#
F1: Welcher Befehl lädt die Daemon-Konfiguration neu, ohne Container zu stoppen?
sudo systemctl reload docker oder sudo kill -SIGHUP $(pidof dockerd).
F2: Welcher Storage Driver wird für Docker auf Ubuntu 22.04 empfohlen?
overlay2 ist der Standard- und empfohlene Driver für alle modernen Linux-Systeme.
F3: Wie überprüfst du die aktuelle Daemon-Konfiguration?
docker info zeigt alle Konfigurationsinformationen an, einschließlich Storage Driver und Logging Driver.
4. Networking (15%)#
Docker-Networking ist eine der technischsten Domänen. Sie erfordert ein gutes Verständnis der verschiedenen Netzwerktypen.
Was geprüft wird#
- Netzwerktypen: bridge, host, overlay, macvlan, none
- Overlay-Netzwerke für Swarm
- Internes Docker-DNS
- Port-Publishing
- Routing Mesh und Ingress
- Service-Netzwerkkonfiguration
Docker-Netzwerktypen#
| Typ | Reichweite | Verwendung |
|---|---|---|
bridge | Lokal | Container auf demselben Host |
host | Lokal | Host-Netzwerk teilen |
overlay | Multi-Host | Swarm-Kommunikation |
macvlan | Lokal | Dedizierte MAC-Adressen |
none | Lokal | Kein Netzwerk |
Konzeptdiagramm#
┌──────────────────────────────────────────────────────────┐
│ DOCKER HOST │
│ ┌──────────────────────────────────────────────────┐ │
│ │ bridge (docker0) │ │
│ │ ┌───────────┐ ┌───────────┐ │ │
│ │ │ Container │ │ Container │ │ │
│ │ │ 172.17. │ │ 172.17. │ │ │
│ │ └───────────┘ └───────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ overlay (my-overlay) │ │
│ │ ┌───────────┐ ┌───────────┐ │ │
│ │ │ Service A │◄──── DNS ────────►│ Service B │ │ │
│ │ │ 10.0.0. │ (internal) │ 10.0.0. │ │ │
│ │ └───────────┘ └───────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ ingress │ │
│ │ (routing mesh / load balancing) │ │
│ │ Veröffentlichte Ports: 80, 443 │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘Internes Docker-DNS#
Docker stellt einen integrierten DNS-Server (127.0.0.11) bereit, der Containern ermöglicht, sich gegenseitig per Namen zu finden:
- Container: Namensauflösung auf benutzerdefinierten Netzwerken
- Swarm-Services: Auflösung nach Service-Namen (automatisches Load-Balancing)
- Tasks: Auflösung über
<task>.<service>.<stack>für spezifische Tasks
Typische Fragen#
F1: Welches Netzwerk ermöglicht die Kommunikation zwischen Containern auf mehreren Swarm-Nodes?
Das overlay-Netzwerk ermöglicht Multi-Host-Kommunikation in einem Swarm-Cluster.
F2: Wie machst du ein Overlay-Netzwerk für Standalone-Container zugänglich?
Verwende die Option --attachable beim Erstellen des Netzwerks.
F3: Welches Netzwerk ist für das Load-Balancing veröffentlichter Ports verantwortlich?
Das ingress-Netzwerk verwaltet das Routing Mesh und verteilt Anfragen auf die Replikas.
Wichtige Befehle#
# Netzwerke erstellen
docker network create mybridge
docker network create --driver overlay --attachable myoverlay
# Inspektion
docker network ls
docker network inspect mynetwork
# Verbinden/Trennen
docker network connect mynetwork mycontainer
docker network disconnect mynetwork mycontainer5. Security (15%)#
Sicherheit ist in der Produktion kritisch. Diese Domäne behandelt Dockers Schutzmechanismen.
Was geprüft wird#
- Docker Secrets und Configs
- Docker Content Trust
- Namespaces und cgroups
- Linux Capabilities
- Seccomp und AppArmor
- Schwachstellen-Scanning
- TLS-Konfiguration
Docker Secrets#
Secrets ermöglichen die sichere Speicherung sensibler Daten:
# Erstellung
echo "mypassword" | docker secret create db_password -
docker secret create ssl_cert ./cert.pem
# Verwendung in einem Service
docker service create \
--name myapp \
--secret db_password \
--secret source=ssl_cert,target=/etc/ssl/cert.pem \
myimage
# Secrets werden in /run/secrets/ gemountetDocker Content Trust#
Content Trust gewährleistet Image-Integrität und -Authentizität:
# Content Trust aktivieren
export DOCKER_CONTENT_TRUST=1
# Image signieren und pushen
docker push myregistry/myimage:v1
# Automatische Verifizierung beim Pull
docker pull myregistry/myimage:v1Linux Capabilities#
Docker entfernt standardmäßig bestimmte gefährliche Capabilities. Du kannst anpassen:
# Alle Capabilities entfernen
docker run --cap-drop ALL nginx
# Spezifische Capability hinzufügen
docker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx
# Typischerweise entfernte Capabilities
# SYS_ADMIN, NET_ADMIN, SYS_PTRACE, SYS_MODULETypische Fragen#
F1: Wo werden Secrets in einem Service-Container gemountet?
In /run/secrets/<secret_name>, als tmpfs gemountet (im Speicher).
F2: Was ist der Unterschied zwischen Secrets und Configs?
Secrets sind im Raft-Log verschlüsselt gespeichert, Configs werden im Klartext gespeichert.
F3: Wie aktivierst du Docker Content Trust?
export DOCKER_CONTENT_TRUST=1 vor Push/Pull-Befehlen.
Häufiger Fehler
Speichere niemals Secrets in Umgebungsvariablen (-e PASSWORD=xxx) oder in Image-Layern (ENV PASSWORD=xxx). Verwende Docker Secrets.
6. Storage (10%)#
Obwohl sie nur 10% der Prüfung ausmacht, ist Storage essentiell für Anwendungen mit persistenten Daten.
Was geprüft wird#
- Docker Volumes
- Bind Mounts
- tmpfs Mounts
- Volume Drivers
- Backup und Wiederherstellung
Volumes vs Bind Mounts vs tmpfs#
| Typ | Von Docker verwaltet | Anwendungsfall |
|---|---|---|
| Volume | ✔ Ja | Persistente Daten, Teilen zwischen Containern |
| Bind Mount | ✗ Nein | Entwicklung, Zugriff auf spezifische Host-Dateien |
| tmpfs | ✔ Ja | Sensible temporäre Daten (im Speicher) |
Mount-Syntax#
# -v Syntax (kurz)
docker run -v myvolume:/app/data nginx
docker run -v /host/path:/container/path nginx
docker run -v /app/data nginx # Anonymes Volume
# --mount Syntax (explizit, empfohlen)
docker run --mount type=volume,source=myvolume,target=/app/data nginx
docker run --mount type=bind,source=/host/path,target=/container/path nginx
docker run --mount type=tmpfs,target=/app/temp nginx
# Häufige Optionen
docker run --mount type=volume,source=myvolume,target=/data,readonly nginx
docker run -v myvolume:/data:ro nginxWichtige Befehle#
# Volume-Verwaltung
docker volume create mydata
docker volume ls
docker volume inspect mydata
docker volume rm mydata
docker volume prune
# Volume-Backup
docker run --rm \
-v mydata:/source:ro \
-v $(pwd):/backup \
alpine tar czf /backup/mydata.tar.gz -C /source .
# Wiederherstellung
docker run --rm \
-v mydata:/target \
-v $(pwd):/backup:ro \
alpine tar xzf /backup/mydata.tar.gz -C /targetTypische Fragen#
F1: Was ist der Hauptunterschied zwischen einem Volume und einem Bind Mount?
Ein Volume wird von Docker verwaltet (in /var/lib/docker/volumes/), ein Bind Mount zeigt auf einen beliebigen Host-Pfad.
F2: Wie mountest du ein Volume schreibgeschützt mit --mount?
Füge die Option readonly hinzu: --mount type=volume,source=mydata,target=/data,readonly
F3: Welcher Befehl entfernt nicht verwendete Volumes?
docker volume prune entfernt alle verwaisten Volumes.
Lernstrategie#
Du kennst nun die 6 Domänen. Hier erfährst du, wie du deine Vorbereitung optimierst.
Empfohlene Lernreihenfolge#
- Orchestration (25%) - Am wichtigsten, beginne hier
- Images & Registry (20%) - Grundlegend für das Docker-Verständnis
- Networking (15%) - Technisch, aber essentiell
- Security (15%) - Schlüsselkonzepte zum Merken
- Installation & Config (15%) - Theoretischer, schnell wiederholbar
- Storage (10%) - Am einfachsten, hebe es dir für zuletzt auf
Zeitverteilung beim Lernen#
| Domäne | Prüfungsgewicht | Empfohlene Zeit |
|---|---|---|
| Orchestration | 25% | 40% der Zeit |
| Images & Registry | 20% | 25% der Zeit |
| Networking + Security + Installation | 45% | 30% der Zeit |
| Storage | 10% | 5% der Zeit |
Tipp
Konzentriere 65% deiner Zeit auf Orchestration und Images. Das sind die Domänen, bei denen praktische Übung den größten Unterschied macht, und sie machen 45% der Prüfung aus.
Checkliste vor der Prüfung#
- Ich kann einen 3-Node Swarm-Cluster initialisieren und verwalten
- Ich kann ein optimiertes Multi-Stage Dockerfile schreiben
- Ich verstehe die verschiedenen Docker-Netzwerktypen
- Ich weiß, wie man Docker Secrets erstellt und verwendet
- Ich kenne die daemon.json Optionen
- Ich beherrsche den Unterschied zwischen Volumes und Bind Mounts
Zusätzliche Ressourcen#
- Offizielle Docker-Dokumentation
- Unser Artikel zum DOMC-Format
- 30 DCA-Fragen #1
- Vollständiger DCA-Leitfaden 2026
Fazit#
Die 6 DCA-Domänen prüfen komplementäre Fähigkeiten:
- Orchestration und Networking: Praktische Übung ist unverzichtbar
- Images und Security: Konzepte und Best Practices verstehen
- Installation und Storage: Theoretischer, aber "einfache" Punkte
Mit strukturierter Vorbereitung und viel Übung hast du alles, was du brauchst, um die Prüfung zu bestehen.
Bereit für die Aktion? Trainiere mit praktischen Szenarien und DOMC-Format-Quizzen, um deine Erfolgschancen zu maximieren.