Qu'est-ce que Docker? Les conteneurs expliqués aux non-développeurs
Docker est un outil qui empaquette une app avec tout ce dont elle a besoin pour fonctionner — la bonne version du langage, les bibliothèques, les outils système et les réglages — dans une unité standard appelée conteneur. Un conteneur fonctionne de la même façon sur l'ordinateur d'un développeur, un serveur de test ou un hébergeur infonuagique, ce qui règle le vieux problème du « mais ça marchait sur ma machine ». La recette pour construire un conteneur est un court fichier texte appelé Dockerfile.
Pourquoi Docker compte quand vous construisez avec l'IA
Si votre app a un backend — une API en Python, Node, C# ou Java — elle doit fonctionner quelque part où exactement le bon logiciel est installé. Docker est la façon la plus courante de rendre cela reproductible.
- Déployer des backends. Beaucoup d'hébergeurs, dont Mythex, déploient les backends en construisant un conteneur à partir d'un Dockerfile. Dans Mythex, demander « une API web C# » ou « un backend Java » vous donne l'app et un Dockerfile, et Publier construit l'image et la déploie (backends d'API).
- Quitter une plateforme. Si vous exportez une app construite par IA, un Dockerfile facilite beaucoup son exécution sur un autre hébergeur. Voir comment exporter et auto-héberger une app construite par IA.
- Travailler avec des développeurs. Un développeur qui rejoint votre projet peut lancer toute l'app avec une ou deux commandes, au lieu de passer une journée à installer des choses.
Une analogie du quotidien : les conteneurs de transport
Avant les conteneurs d'expédition standard, la cargaison était chargée pièce par pièce — sacs, barils, caisses — et chaque port la traitait différemment. Le conteneur d'acier standard a tout changé : on l'emballe une fois, et n'importe quel navire, grue, train ou camion peut le déplacer sans se soucier de ce qu'il contient.
Docker fait la même chose pour les logiciels :
- Le Dockerfile est la liste de colisage et les instructions.
- L'image est le conteneur scellé et emballé.
- Un conteneur en cours d'exécution est cette caisse mise au travail sur un navire — ici, un serveur.
- Docker Engine est la grue et le navire : le logiciel sur un serveur qui sait exécuter n'importe quel conteneur.
Comment fonctionne Docker
| Élément | Ce que c'est |
|---|---|
| Dockerfile | Un fichier texte avec des instructions pas à pas pour construire l'image. |
| Image | Un paquet en lecture seule : les bases du système d'exploitation, le environnement d'exécution, les bibliothèques et votre code. |
| Conteneur | Une instance en cours d'exécution d'une image, isolée des autres apps de la même machine. |
| Registre | Un endroit pour stocker et partager des images, comme Docker Hub ou le registre d'un fournisseur infonuagique. |
| Docker Engine | Le service en arrière-plan qui construit les images et exécute les conteneurs. Gratuit et open source. |
| Docker Desktop | Une application pour Mac, Windows et Linux qui regroupe le moteur avec une interface graphique. |
Conteneurs contre machines virtuelles : une machine virtuelle prétend être un ordinateur séparé complet avec son propre système d'exploitation, donc elle est lourde et lente à démarrer. Un conteneur partage le noyau du système d'exploitation de l'hôte et n'isole que l'app et ses fichiers; il démarre donc généralement en quelques secondes et utilise beaucoup moins de mémoire. Plusieurs conteneurs peuvent fonctionner côte à côte sur un même serveur.
Un exemple concret : une petite API Python
Disons que votre créateur d'apps IA a créé un backend FastAPI en Python pour une app de réservation. Le Dockerfile pourrait ressembler à ceci :
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Ligne par ligne :
| Ligne | Ce qu'elle fait |
|---|---|
FROM python:3.12-slim | Partir d'une image officielle qui a déjà Python 3.12 installé. |
WORKDIR /app | Travailler dans le dossier /app du conteneur. |
COPY requirements.txt . et RUN pip install ... | Copier la liste des bibliothèques et les installer. |
COPY . . | Copier le code propre à l'app. |
EXPOSE 8000 | Noter que l'app écoute sur le port 8000. |
CMD [...] | La commande qui démarre le serveur web lorsque le conteneur s'exécute. |
En clair : « Commence avec Python 3.12. Installe les bibliothèques listées dans requirements.txt. Copie le code. Démarre le serveur web sur le port 8000. »
Un développeur (ou une plateforme d'hébergement) exécute ensuite deux commandes :
docker build -t booking-api .
docker run -p 8000:8000 booking-api
La première construit l'image et la nomme booking-api. La seconde démarre un conteneur et relie le port 8000 de la machine au port 8000 à l'intérieur du conteneur. L'API fonctionne maintenant — de la même façon que sur n'importe quel serveur qui a Docker.
Notez ce qui n'est pas dans l'image : les mots de passe et les clés d'API. Ceux-ci sont transmis au démarrage du conteneur, comme des variables d'environnement, pour que la même image puisse fonctionner en test et en production avec des réglages différents.
Termes clés
| Terme | Signification |
|---|---|
| Conteneur | Un paquet isolé et en cours d'exécution d'une app et de ses dépendances. |
| Image | Le modèle à partir duquel un conteneur est démarré. |
| Image de base | Le point de départ de la ligne FROM d'un Dockerfile, comme python:3.12-slim ou node:22. |
| Couche (layer) | Chaque étape du Dockerfile ajoute une couche mise en cache, ce qui accélère les reconstructions. |
| Mappage de port | Relier un port de l'hôte à un port à l'intérieur du conteneur. |
| Volume | Un espace de stockage qui survit au remplacement d'un conteneur. Les conteneurs eux-mêmes sont jetables. |
| Docker Compose | Un fichier qui décrit plusieurs conteneurs qui fonctionnent ensemble, comme une API et une base de données. |
| Kubernetes | Un système pour exécuter de nombreux conteneurs sur de nombreux serveurs. La plupart des petites apps n'en ont pas besoin. |
Idées fausses courantes
- « Docker est une machine virtuelle. » C'est plus léger : les conteneurs partagent le noyau de l'hôte.
- « Les données enregistrées dans un conteneur sont en sécurité. » Les conteneurs sont censés être jetés et remplacés. Tout ce qui doit durer — données des utilisateurs, fichiers téléversés — doit aller dans une base de données, un stockage de fichiers ou un volume.
- « Mettre des secrets dans le Dockerfile, c'est correct parce que c'est privé. » Les images sont partagées et poussées vers des registres. Transmettez plutôt les secrets à l'exécution.
- « Docker rend une app sécurisée. » L'isolation aide, mais un conteneur qui fait tourner des logiciels périmés avec des réglages faibles reste vulnérable.
- « Chaque app a besoin de Docker. » Un site statique ou un frontend simple est habituellement hébergé comme de simples fichiers, sans aucun conteneur.
- « Docker Desktop est gratuit pour tout le monde. » Le moteur est gratuit; Docker Desktop exige un abonnement payant pour les grandes entreprises, selon les conditions de Docker.
Quoi demander à votre créateur d'apps IA
- « Cette app a-t-elle besoin d'un Dockerfile? Si oui, explique chaque ligne en français simple. »
- « Utilise une petite image de base officielle et fixe la version du langage. »
- « Garde les secrets hors de l'image. Lis-les depuis des variables d'environnement à l'exécution. »
- « Assure-toi que les téléversements et les données sont stockés dans la base de données ou le stockage de fichiers, et non dans le conteneur. »
- « Ajoute un fichier Docker Compose pour qu'un développeur puisse exécuter le frontend, l'API et la base de données localement avec une seule commande. »
- « Ajoute un point de contrôle de santé (health check) pour que l'hébergeur puisse savoir si l'API est en marche. »
Docker dans Mythex
Vous n'avez pas besoin d'installer ni d'exécuter Docker pour utiliser Mythex. Votre projet s'exécute dans un bac à sable infonuagique privé, et quand vous demandez un backend qui exige un conteneur — par exemple C#, Java ou un service Node ou Python personnalisé — Mythex écrit l'app et un Dockerfile, la prévisualise dans le bac à sable et la déploie lorsque vous publiez, sans rien à configurer pour l'hébergement (comment la technologie est choisie). Avec Pro, vous pouvez exporter le projet ou le synchroniser avec GitHub et emporter le Dockerfile. Pour comprendre comment backends et frontends s'articulent, voir frontend contre backend.
Questions
Qu'est-ce que Docker, en termes simples?
Docker est un outil qui empaquette une app avec tout ce dont elle a besoin pour fonctionner — le environnement d'exécution du langage, les bibliothèques et les réglages — dans une unité standard appelée conteneur. Le conteneur fonctionne de la même façon sur un ordinateur portable, un serveur de test ou un hébergeur infonuagique.
Quelle est la différence entre une image Docker et un conteneur?
Une image est le modèle empaqueté et en lecture seule : l'app et ses dépendances, construits à partir d'un Dockerfile. Un conteneur est une copie en cours d'exécution de cette image. Vous pouvez lancer plusieurs conteneurs à partir d'une seule image.
Docker est-il une machine virtuelle?
Non. Une machine virtuelle émule un ordinateur complet avec son propre système d'exploitation. Les conteneurs partagent le noyau du système d'exploitation de la machine hôte et n'isolent que l'app, si bien qu'ils démarrent plus vite et utilisent moins de mémoire.
Docker est-il gratuit?
Docker Engine, le cœur qui exécute les conteneurs, est gratuit et open source. En date de septembre 2026, les conditions de Docker indiquent que Docker Desktop est gratuit pour les projets open source non commerciaux et pour les entreprises de moins de 250 employés et de moins de 10 millions de dollars de chiffre d'affaires annuel; les grandes entreprises ont besoin d'un abonnement payant.
Dois-je apprendre Docker pour construire une app avec l'IA?
Habituellement non. Beaucoup de créateurs d'apps IA gèrent les conteneurs à votre place. Il est utile de savoir ce qu'est un Dockerfile pour comprendre comment un backend est empaqueté, et pour pouvoir exécuter ou héberger l'app ailleurs si vous l'exportez.