Guide recrutement data
Test technique Docker : ce qu'on evalue en entretien Data Engineer
Docker est incontournable pour les Data Engineers. Airflow, pipelines, environnements reproductibles — voici comment evaluer ce que cela signifie.
Data Builder·Juin 2025·7 min de lecture·Data Engineer
Docker est incontournable pour les Data Engineers. Airflow tourne sous Docker, les pipelines sont containerises. Voici comment evaluer ce que cela signifie reellement.
1Images et containers
Question discriminante
Difference entre une image Docker et un container ? Et entre une image et un Dockerfile ?
Image = template immutable (classe en POO). Container = instance en cours d'execution. Dockerfile = recette pour construire une image.
- docker pull/run/ps/logs/exec — commandes de base
- Layers — chaque instruction cree un layer cache
- Docker Hub vs registres prives : ECR, GCR, GitHub Container Registry
2Dockerfile : construire ses images
Question discriminante
Pourquoi l'ordre des instructions dans un Dockerfile a-t-il de l'importance ?
FROM python:3.11-slim
WORKDIR /app
# Dependances : cache stable, en premier
COPY requirements.txt .
RUN pip install -r requirements.txt
# Code : cache invalide souvent, en dernier
COPY . .
CMD ["python", "pipeline.py"]
- Multi-stage builds — images plus legeres
- .dockerignore — exclure les fichiers inutiles
3Volumes et reseaux
Question discriminante
Comment persistez-vous des donnees generees par un container apres son arret ?
- Volumes nommes — gestion par Docker, independants du cycle de vie
- Communication entre containers — par nom de service sur reseau partage
4Docker Compose : orchestration locale
Question discriminante
Exemple de docker-compose.yml pour un projet data.
services:
postgres:
image: postgres:15
volumes: [postgres_data:/var/lib/postgresql/data]
dbt:
build: .
depends_on: [postgres]
volumes:
postgres_data:
5Docker en CI/CD et production
Question discriminante Senior
Comment integrez-vous Docker dans votre pipeline CI/CD ?
- Build et push dans GitHub Actions vers un registre
- Tags semantiques : v1.2.3 plutot que latest en prod
- Scan de vulnerabilites : Trivy dans la CI
- Kubernetes — quand passer de Compose a K8s ?
6Grille par niveau
| Niveau | Maitrise attendue | Signal GO | NO-GO |
|---|
| Junior | docker pull/run/ps/logs, images de base | Comprend image vs container, utilise .dockerignore | Ne sait pas ce qu'est un layer |
| Confirme | Dockerfile optimise, volumes, Docker Compose | A ecrit un Dockerfile multi-stage, Compose pour Airflow | Ne sait pas pourquoi l'ordre des instructions compte |
| Senior | CI/CD Docker, registres prives, securite | Build+push+deploy dans une CI | N'a jamais pousse vers un registre prive |
| Lead | Architecture containers, Kubernetes, standards securite | A defini les standards d'images pour l'equipe | Ne peut pas expliquer Compose vs Kubernetes |
Data hiring guide
Docker technical interview: what we really assess in data hiring
Docker is essential for Data Engineers. Airflow, pipelines, reproducible environments — here is how to assess what that really means.
Data Builder·June 2025·7 min read·Data Engineer
Docker is essential for Data Engineers. Airflow runs on Docker, pipelines are containerized. Here is how to assess what that really means in practice.
1Images and containers
Key question
What is the difference between a Docker image and a container? And between an image and a Dockerfile?
Image = immutable template (like a class in OOP). Container = running instance. Dockerfile = recipe for building an image.
- docker pull/run/ps/logs/exec — basic commands
- Layers — each instruction creates a cached layer
- Docker Hub vs private registries: ECR, GCR, GitHub Container Registry
2Dockerfile: building your images
Key question
Why does the order of instructions in a Dockerfile matter?
FROM python:3.11-slim
WORKDIR /app
# Dependencies: stable cache, placed first
COPY requirements.txt .
RUN pip install -r requirements.txt
# Code: cache invalidated often, placed last
COPY . .
CMD ["python", "pipeline.py"]
- Multi-stage builds — lighter images
- .dockerignore — exclude unnecessary files
3Volumes and networks
Key question
How do you persist data generated by a container after it stops?
- Named volumes — managed by Docker, independent of the container lifecycle
- Communication between containers — by service name on a shared network
4Docker Compose: local orchestration
Key question
Example of a docker-compose.yml for a data project.
services:
postgres:
image: postgres:15
volumes: [postgres_data:/var/lib/postgresql/data]
dbt:
build: .
depends_on: [postgres]
volumes:
postgres_data:
5Docker in CI/CD and production