Docker

Docker permet de créer des environnements isolés, appelés containers, pour y exécuter des processus ou applications, de manière plus légère que la virtualisation. Docker s'appuie sur des fonctionnalités du noyau Linux pour fonctionner, les Linux namespaces (isolation des environnements) et les Linux cgroups (gestion des ressources CPU/Mémoire). Docker est composé de :

Docker est également une société qui vend des services aux entreprises, en particulier d'hébergement d'image sur le Hub, ainsi que du support.

La vidéo suivante présente les grandes notions de docker.

Transparents présentés dans la vidéo

La vidéo suivante présente comment utiliser docker pour se constituer un environnement de développement, avec une base de données PostgreSQL.

Glossaire

Container
Un container représente un processus (au sens Linux), qui s'exécute dans un environnement isolé (CPU/Mémoire/filesystem). Un container est instancié à partir d'une image de container.
Image
Une image est une unité de packaging docker, qui comprend un processus à exécuter, ainsi que l'ensemble des dépendances dont il a besoin. Par exemple, l'image `postgres`, contient le système de bases de données PostgreSQL, ainsi que toutes les dépendances nécessaires à son exécution. Les images de containers peuvent être produites par les développeurs open-source (par exemple l'image `postgres`), ou par une entreprise pour packager ses applications. Les images de containers peuvent être partagées sur le Hub Docker.
Hub Docker
Le Hub Docker est un repository centralisé d'images de containers (un peu à la manière de Maven).
Dockerfile
Le `Dockerfile` est un fichier qui contient l'ensemble des instructions permettant la construction d'une image de container.

Apprendre en ligne

Pour apprendre à manipuler son outil, Docker fournit un "playground" gratuit (il faut néanmoins se créer un compte sur le hub docker) : labs.play-with-docker.com

Liens utiles