Le principe
La documentation de Docker le présente comme une plateforme ouverte pour développer, livrer et exécuter des applications, en les séparant de l'infrastructure. Deux notions suffisent pour commencer :
- l'image est un modèle en lecture seule, qui contient tout ce qu'il faut pour créer un conteneur. Elle se construit à partir d'un fichier de recette, le Dockerfile, ou se télécharge toute prête ;
- le conteneur est une image en train de tourner. On le crée, on l'arrête, on le supprime ; ce qui n'est pas rangé dans un stockage durable disparaît avec lui.
Les images se partagent par des registres. Docker Hub est le registre public interrogé par défaut ; une entreprise peut aussi tenir son propre registre privé.
Conteneur ou machine virtuelle
| Machine virtuelle | Conteneur | |
|---|---|---|
| Contenu | un système d'exploitation entier, avec son noyau | un processus isolé et ses fichiers |
| Noyau | le sien | celui de la machine hôte, partagé |
| Poids | lourd, démarre comme un ordinateur | léger, démarre en quelques secondes |
D'après la page de Docker sur les conteneurs, lancer une machine virtuelle pour isoler une seule application coûte cher en ressources, alors que les conteneurs partagent le même noyau et tiennent plus nombreux sur la même machine. Les deux se combinent souvent : un serveur virtuel, comme un VPS, fait tourner Docker et plusieurs conteneurs. Voir Qu'est-ce qu'un VPS.
Ce que l'on fait avec Docker
- Installer des applications toutes prêtes : un gestionnaire de mots de passe, un outil d'automatisation, un cloud de fichiers, un outil de surveillance. L'éditeur publie l'image, vous la lancez.
- Faire tourner plusieurs applications côte à côte sans qu'elles se gênent, chacune avec sa version de langage et ses dépendances.
- Déployer son propre code de la même façon en test et en production.
- Décrire un ensemble de services dans un seul fichier avec Docker Compose : l'application, sa base de données, son cache. Voir Docker Compose.
Ce qu'il faut savoir avant de s'y mettre
- Les données se rangent à part. Un conteneur est jetable : ce qui doit survivre à sa suppression, comme une base de données ou des fichiers envoyés, va dans un volume ou un dossier monté.
- Une image se met à jour. Les éditeurs publient des versions corrigées ; il faut les télécharger et recréer le conteneur, ce que décrit Mettre à jour un conteneur Docker.
- Un port publié n'est pas forcément ouvert. Selon le pare-feu du serveur, une application qui écoute sur un port peut rester injoignable depuis Internet, ce qui est souvent voulu.
Chez Hubspace
Nos VPS sont livrés avec Docker et Docker Compose installés depuis le dépôt officiel de Docker. Le compte admin peut lancer docker sans sudo. Le pare-feu n'ouvre que les ports 22, 80 et 443, y compris pour les ports que Docker publie : une base de données lancée dans un conteneur n'est donc pas exposée par accident. Pour servir plusieurs applications sur les ports 80 et 443, on place un reverse proxy devant elles : voir Qu'est-ce qu'un reverse proxy. L'installation sur un autre serveur est décrite dans Installer Docker, et les serveurs sur la page des serveurs VPS.
Questions fréquentes
Docker est-il gratuit ?
Docker Engine, le moteur qui fait tourner les conteneurs sur un serveur Linux, est un logiciel libre sous licence Apache 2.0. Docker Desktop, l'application pour ordinateur, suit d'autres conditions : gratuite pour un usage personnel, l'enseignement, les projets open source non commerciaux et les entreprises de moins de 250 salariés et de moins de 10 millions de dollars de chiffre d'affaires annuel, payante au-delà.
Docker remplace-t-il un hébergement WordPress ?
Il peut faire tourner WordPress, mais tout ce que l'hébergeur ferait reste alors à votre charge : mises à jour, sauvegardes, certificat, sécurité. Pour un site seul, un hébergement managé est plus simple.
Faut-il un serveur pour utiliser Docker ?
Non. Docker s'installe aussi sur un ordinateur pour essayer ou développer. Un serveur devient utile quand l'application doit rester joignable en permanence depuis Internet.
Articles liés
- Qu'est-ce qu'un nom de domaine ? DéfinitionC'est quoi un nom de domaine ? L'adresse lisible d'un site, faite d'un nom et d'une extension, que l'on réserve chaque année chez un bureau d'enregistrement.
- Qu'est-ce qu'un hébergement web ? DéfinitionC'est quoi un hébergement web ? Un espace sur un serveur toujours allumé, où vivent les fichiers et la base d'un site, et souvent ses boîtes mail.
- Qu'est-ce qu'un VPS ? Le serveur privé virtuelC'est quoi un VPS ? Un serveur privé virtuel : une machine à vous, avec sa mémoire, son disque et un accès administrateur, à administrer vous-même.