
Les 6 Domaines du DCA : Tout Ce Qu'il Faut Savoir
Guide complet des 6 domaines de l'examen Docker Certified Associate : Orchestration, Images, Installation, Networking, Security et Storage. Commandes essentielles et stratégies de révision.
Les 6 Domaines du DCA : Tout Ce Qu'il Faut Savoir
L'examen Docker Certified Associate couvre 6 domaines distincts, chacun avec un poids différent dans le score final. Comprendre cette répartition est essentiel pour optimiser ta préparation.
Cet article détaille chaque domaine : ce qui est testé, les commandes à maîtriser, et des exemples de questions types. À la fin, tu auras une vision claire de ce qui t'attend et une stratégie de révision efficace.
Vue d'Ensemble des Domaines#
L'examen DCA comprend 55 questions à compléter en 90 minutes. Voici comment les points sont répartis :
| Domaine | Poids | Questions estimées | Difficulté |
|---|---|---|---|
| Orchestration | 25% | ~14 questions | Élevée |
| Images & Registry | 20% | ~11 questions | Moyenne |
| Installation & Configuration | 15% | ~8 questions | Moyenne |
| Networking | 15% | ~8 questions | Élevée |
| Security | 15% | ~8 questions | Moyenne |
| Storage | 10% | ~6 questions | Basse |
Statistique clé
L'Orchestration et les Images représentent à eux seuls 45% de l'examen. Si tu maîtrises ces deux domaines, tu as déjà presque la moitié des points assurés.
Comment lire ce guide#
Pour chaque domaine, tu trouveras :
- Ce qui est testé : Les concepts clés à maîtriser
- Commandes essentielles : Les commandes Docker incontournables
- Questions types : Des exemples représentatifs du format d'examen
- Conseils de révision : Comment aborder efficacement le domaine
1. Orchestration (25%)#
L'Orchestration est le domaine le plus lourd de l'examen. Il se concentre sur Docker Swarm, le système d'orchestration natif de Docker.
Ce qui est testé#
- Initialisation et gestion d'un cluster Swarm
- Création, mise à jour et scaling de services
- Rolling updates et rollbacks
- Gestion des nœuds (managers, workers)
- Stacks et déploiement via fichiers Compose
- Placement des containers (contraintes, préférences)
- Haute disponibilité et quorum des managers
Les 10 commandes essentielles#
# Gestion du cluster
docker swarm init --advertise-addr <IP>
docker swarm join --token <TOKEN> <MANAGER-IP>:2377
docker swarm leave [--force]
# Gestion des nœuds
docker node ls
docker node update --availability drain <NODE>
docker node promote <NODE>
docker node demote <NODE>
# Gestion des services
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>Questions types#
Q1 : Quelle commande affiche les tâches d'un service spécifique ?
La réponse est docker service ps <SERVICE>. Attention au piège docker service tasks qui n'existe pas.
Q2 : Comment limiter un service aux nœuds avec le label env=production ?
Utilise --constraint node.labels.env==production. Note le double == et le préfixe node.labels..
Q3 : Quel est le nombre minimum de managers pour tolérer la perte d'un manager ?
Il faut 3 managers pour tolérer 1 panne (quorum = 2). La formule est : (N-1)/2 pannes tolérées.
Piège courant
Ne confonds pas docker service scale myapp=5 (correct) avec docker scale myapp=5 (incorrect). La commande scale n'existe qu'au niveau service.
Conseils de révision#
- Monte un cluster Swarm de 3 nœuds minimum (1 manager + 2 workers)
- Pratique les rolling updates avec différentes configurations
- Teste les scénarios de panne : que se passe-t-il quand un manager tombe ?
- Maîtrise les contraintes :
node.role,node.labels,node.hostname
2. Images & Registry (20%)#
Ce domaine teste ta capacité à créer, optimiser et distribuer des images Docker.
Ce qui est testé#
- Écriture de Dockerfiles optimisés
- Multi-stage builds
- Gestion du build cache
- Push/pull vers des registries
- Tagging et versioning
- Docker Content Trust
- Inspection et historique des images
Best Practices Dockerfile#
# 1. Utiliser une image de base légère
FROM node:18-alpine
# 2. Définir un utilisateur non-root
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# 3. Copier d'abord les fichiers de dépendances (cache)
COPY package*.json ./
RUN npm ci --only=production
# 4. Copier le code source ensuite
COPY --chown=appuser:appgroup . .
# 5. Exposer le port (documentation)
EXPOSE 3000
# 6. Définir l'utilisateur
USER appuser
# 7. Utiliser la forme exec pour CMD
CMD ["node", "server.js"]Tableau des instructions Dockerfile#
| Instruction | Crée un layer ? | Usage |
|---|---|---|
FROM | Oui | Image de base |
RUN | Oui | Exécuter des commandes |
COPY | Oui | Copier des fichiers |
ADD | Oui | Copier + extraire archives |
CMD | Non | Commande par défaut |
ENTRYPOINT | Non | Point d'entrée |
ENV | Oui | Variables d'environnement |
ARG | Non | Variables de build |
EXPOSE | Non | Documentation port |
USER | Non | Utilisateur d'exécution |
WORKDIR | Oui | Répertoire de travail |
Questions types#
Q1 : Quelle instruction permet de copier un fichier depuis un stage précédent ?
COPY --from=<stage> permet de copier depuis un autre stage dans un multi-stage build.
Q2 : Quelle est la différence entre ENTRYPOINT et CMD ?
ENTRYPOINT définit la commande principale (difficile à remplacer), CMD fournit les arguments par défaut (facilement remplaçables).
Q3 : Comment invalider le cache à partir d'une instruction spécifique ?
Modifie le fichier copié avant cette instruction, ou utilise --no-cache pour désactiver tout le cache.
Optimisation du cache
L'ordre des instructions est crucial. Place les instructions qui changent rarement (installation de dépendances système) avant celles qui changent souvent (copie du code source).
Commandes essentielles#
# Build
docker build -t myimage:v1 .
docker build --no-cache -t myimage:v1 .
docker build --target <stage> -t myimage:v1 .
# Tagging et push
docker tag myimage:v1 registry.example.com/myimage:v1
docker push registry.example.com/myimage:v1
docker pull registry.example.com/myimage:v1
# Inspection
docker image history myimage:v1
docker image inspect myimage:v1
docker image ls
docker image prune3. Installation & Configuration (15%)#
Ce domaine couvre la configuration du daemon Docker et de l'environnement d'exécution.
Ce qui est testé#
- Installation de Docker sur différents OS
- Configuration du daemon via
daemon.json - Storage drivers
- Logging drivers
- Gestion des ressources (CPU, mémoire)
- Configuration réseau du daemon
- Sécurisation de l'API Docker
Le fichier daemon.json#
Le fichier /etc/docker/daemon.json centralise la configuration du daemon :
{
"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 | Recommandé | Cas d'usage |
|---|---|---|
overlay2 | ✔ Oui | Linux moderne (kernel 4.0+) |
fuse-overlayfs | ✔ Oui | Rootless Docker |
btrfs | Spécifique | Systèmes de fichiers btrfs |
zfs | Spécifique | Systèmes de fichiers ZFS |
devicemapper | ✗ Déprécié | Legacy |
aufs | ✗ Déprécié | Legacy |
vfs | ✗ Lent | Debug uniquement |
Logging Drivers#
| Driver | Description |
|---|---|
json-file | Fichiers JSON locaux (défaut) |
journald | Intégration systemd journal |
syslog | Serveur syslog |
fluentd | Collecteur Fluentd |
gelf | Format Graylog GELF |
awslogs | Amazon CloudWatch |
gcplogs | Google Cloud Logging |
Questions types#
Q1 : Quelle commande recharge la configuration du daemon sans arrêter les containers ?
sudo systemctl reload docker ou sudo kill -SIGHUP $(pidof dockerd).
Q2 : Quel storage driver est recommandé pour Docker sur Ubuntu 22.04 ?
overlay2 est le driver par défaut et recommandé pour tous les systèmes Linux modernes.
Q3 : Comment vérifier la configuration actuelle du daemon ?
docker info affiche toutes les informations de configuration, y compris le storage driver et le logging driver.
4. Networking (15%)#
Le réseau Docker est l'un des domaines les plus techniques. Il nécessite une bonne compréhension des différents types de réseaux.
Ce qui est testé#
- Types de réseaux : bridge, host, overlay, macvlan, none
- Réseaux overlay pour Swarm
- DNS interne Docker
- Publication de ports
- Routing mesh et ingress
- Configuration réseau des services
Types de réseaux Docker#
| Type | Portée | Usage |
|---|---|---|
bridge | Local | Containers sur un même hôte |
host | Local | Partage du réseau hôte |
overlay | Multi-hôtes | Communication Swarm |
macvlan | Local | Adresses MAC dédiées |
none | Local | Aucun réseau |
Schéma conceptuel#
┌──────────────────────────────────────────────────────────┐
│ 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) │ │
│ │ Ports publiés: 80, 443 │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘DNS interne Docker#
Docker fournit un serveur DNS intégré (127.0.0.11) qui permet aux containers de se découvrir par nom :
- Containers : Résolution par nom de container sur les réseaux user-defined
- Services Swarm : Résolution par nom de service (load-balancing automatique)
- Tâches : Résolution par
<task>.<service>.<stack>pour cibler une tâche spécifique
Questions types#
Q1 : Quel réseau permet aux containers de communiquer entre plusieurs nœuds Swarm ?
Le réseau overlay permet la communication multi-hôtes dans un cluster Swarm.
Q2 : Comment rendre un réseau overlay accessible aux containers standalone ?
Utilise l'option --attachable lors de la création du réseau.
Q3 : Quel est le réseau responsable du load balancing des ports publiés ?
Le réseau ingress gère le routing mesh et distribue les requêtes entre les réplicas.
Commandes essentielles#
# Création de réseaux
docker network create mybridge
docker network create --driver overlay --attachable myoverlay
# Inspection
docker network ls
docker network inspect mynetwork
# Connexion/déconnexion
docker network connect mynetwork mycontainer
docker network disconnect mynetwork mycontainer5. Security (15%)#
La sécurité est critique en production. Ce domaine couvre les mécanismes de protection de Docker.
Ce qui est testé#
- Docker Secrets et Configs
- Docker Content Trust
- Namespaces et cgroups
- Capabilities Linux
- Seccomp et AppArmor
- Scanning de vulnérabilités
- Configuration TLS
Docker Secrets#
Les secrets permettent de stocker des données sensibles de manière sécurisée :
# Création
echo "mypassword" | docker secret create db_password -
docker secret create ssl_cert ./cert.pem
# Utilisation dans un service
docker service create \
--name myapp \
--secret db_password \
--secret source=ssl_cert,target=/etc/ssl/cert.pem \
myimage
# Les secrets sont montés dans /run/secrets/Docker Content Trust#
Content Trust garantit l'intégrité et l'authenticité des images :
# Activer Content Trust
export DOCKER_CONTENT_TRUST=1
# Signer et pousser une image
docker push myregistry/myimage:v1
# Vérification automatique au pull
docker pull myregistry/myimage:v1Capabilities Linux#
Docker retire par défaut certaines capabilities dangereuses. Tu peux ajuster :
# Supprimer toutes les capabilities
docker run --cap-drop ALL nginx
# Ajouter une capability spécifique
docker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx
# Capabilities typiquement supprimées
# SYS_ADMIN, NET_ADMIN, SYS_PTRACE, SYS_MODULEQuestions types#
Q1 : Où sont montés les secrets dans un container de service ?
Dans /run/secrets/<secret_name>, monté en tmpfs (en mémoire).
Q2 : Quelle est la différence entre secrets et configs ?
Les secrets sont chiffrés au repos dans le Raft log, les configs sont stockés en clair.
Q3 : Comment activer Docker Content Trust ?
export DOCKER_CONTENT_TRUST=1 avant les commandes push/pull.
Erreur fréquente
Ne stocke jamais de secrets dans des variables d'environnement (-e PASSWORD=xxx) ou dans les layers d'image (ENV PASSWORD=xxx). Utilise Docker Secrets.
6. Storage (10%)#
Bien que représentant seulement 10% de l'examen, le storage est essentiel pour les applications avec données persistantes.
Ce qui est testé#
- Volumes Docker
- Bind mounts
- tmpfs mounts
- Volume drivers
- Backup et restauration
Volumes vs Bind Mounts vs tmpfs#
| Type | Géré par Docker | Cas d'usage |
|---|---|---|
| Volume | ✔ Oui | Données persistantes, partage entre containers |
| Bind mount | ✗ Non | Développement, accès à des fichiers hôte spécifiques |
| tmpfs | ✔ Oui | Données temporaires sensibles (en mémoire) |
Syntaxes de montage#
# Syntaxe -v (courte)
docker run -v myvolume:/app/data nginx
docker run -v /host/path:/container/path nginx
docker run -v /app/data nginx # Volume anonyme
# Syntaxe --mount (explicite, recommandée)
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
# Options courantes
docker run --mount type=volume,source=myvolume,target=/data,readonly nginx
docker run -v myvolume:/data:ro nginxCommandes essentielles#
# Gestion des volumes
docker volume create mydata
docker volume ls
docker volume inspect mydata
docker volume rm mydata
docker volume prune
# Backup d'un volume
docker run --rm \
-v mydata:/source:ro \
-v $(pwd):/backup \
alpine tar czf /backup/mydata.tar.gz -C /source .
# Restauration
docker run --rm \
-v mydata:/target \
-v $(pwd):/backup:ro \
alpine tar xzf /backup/mydata.tar.gz -C /targetQuestions types#
Q1 : Quelle est la différence principale entre un volume et un bind mount ?
Un volume est géré par Docker (dans /var/lib/docker/volumes/), un bind mount pointe vers un chemin arbitraire de l'hôte.
Q2 : Comment monter un volume en lecture seule avec --mount ?
Ajoute l'option readonly : --mount type=volume,source=mydata,target=/data,readonly
Q3 : Quelle commande supprime les volumes non utilisés ?
docker volume prune supprime tous les volumes orphelins.
Stratégie de Révision#
Tu connais maintenant les 6 domaines. Voici comment optimiser ta préparation.
Ordre de révision recommandé#
- Orchestration (25%) - Le plus important, commence par là
- Images & Registry (20%) - Fondamental pour comprendre Docker
- Networking (15%) - Technique mais essentiel
- Security (15%) - Concepts clés à mémoriser
- Installation & Config (15%) - Plus théorique, révisable rapidement
- Storage (10%) - Le plus simple, garde-le pour la fin
Répartition du temps de révision#
| Domaine | Poids examen | Temps recommandé |
|---|---|---|
| Orchestration | 25% | 40% du temps |
| Images & Registry | 20% | 25% du temps |
| Networking + Security + Installation | 45% | 30% du temps |
| Storage | 10% | 5% du temps |
Conseil
Concentre 65% de ton temps sur Orchestration et Images. Ce sont les domaines où la pratique hands-on fait la plus grande différence, et ils représentent 45% de l'examen.
Checklist avant l'examen#
- Je peux initialiser et gérer un cluster Swarm de 3 nœuds
- Je peux écrire un Dockerfile multi-stage optimisé
- Je comprends les différents types de réseaux Docker
- Je sais créer et utiliser des secrets Docker
- Je connais les options de daemon.json
- Je maîtrise la différence entre volumes et bind mounts
Ressources complémentaires#
- Documentation officielle Docker
- Notre article sur le format DOMC
- 30 Questions DCA #1
- Guide complet DCA 2026
Conclusion#
Les 6 domaines du DCA testent des compétences complémentaires :
- Orchestration et Networking : La pratique hands-on est indispensable
- Images et Security : Comprendre les concepts et best practices
- Installation et Storage : Plus théoriques, mais des points "faciles"
Avec une préparation structurée et beaucoup de pratique, tu as toutes les cartes en main pour réussir l'examen.
Prêt à passer à l'action ? Entraîne-toi avec des scénarios pratiques et des quiz au format DOMC pour maximiser tes chances de succès.