Les conteneurs regroupent des solutions informatiques récentes qui permettent d’encapsuler des applications avec leur environnement de fonctionnement.
Dans la continuité des machines virtuelles du cloud computing (Infrastructure-as-a-Service), plusieurs solutions de conteneurs ont émergé depuis 2005 : Docker, Rkt, Singularity, etc. Parmi ces solutions, Docker a été le moteur de la communauté en fournissant un écosystème complet : Démon Docker, client, Hub/registre privé, Compose, Swarm, Machine, etc.
De plus, la solution Docker offre un environnement convivial pour le déploiement d’applications de type micro-services (un service par conteneur) mais aussi pour les applications scientifiques.
Afin de construire ces applications de manière automatique, les conteneurs Docker s’intègrent dans les processus d’intégration et déploiement continue ce qui en fait une solution complète.
Dans ce tutoriel, nous verrons le fonctionnement de la solution Docker. Nous aborderons les différents composants de son écosystème (construction et partage d’images, déploiement de conteneur... ) avec des applications en Python. A travers des applications de type micro-services (service web de type serveur Jupyter Notebook) et une application scientifique (encapsulation d’un code de calcul dans un conteneur), nous verrons la diversité des possibilités offertes par les conteneurs Docker.
Ce tutoriel est accessible à la fois aux scientifiques et aux ingénieurs qui souhaitent démarrer avec Docker.
Fabrice Roy