Déploiement d'applications dans des conteneurs avec Docker
Mots clés
Présentation
Pour linux, Le paquet à installer est docker.io et pour windows il faut télécharger l'application boot2docker. Cette dernière est en faite une machine virtuelle sous Tails ( une distribution linux très légère) qui lance le service docker et le client. L'installation va vous permettre d'avoir :
- le Docker Engine (ou service Docker)
- le Docker Client
Par la suite vous pourrez utiliser des images pour construire des conteneurs avec n'importe quel application dessus. Il existe d'autres mots clés comme Docker images, Dockerfile, Docker Hub, Layers qui permettent d'utiliser tout le potentiel de Docker, veuillez noter que cette liste n'est pas exhaustive. Voici un schéma de quelques composantes de docker.

Docker Engine
le service ou démon Docker s'exécute sur un ordinateur hôte. L'utilisateur ne interagit pas directement avec le démon, mais plutôt via le client Docker. Lorsqu'une commande est effectuée, celle-ci appelle le démon.

Docker client
Le client Docker est en faite la commande docker qu'on utilise dans le terminal. C'est l'interface utilisateur principal de docker. Il communique avant en arrière avec le démon.
Docker Images
Une image Docker est un modèle en lecture seule. Par exemple, une image peut contenir un système d'exploitation debian et votre jenkins installée. Les images sont utilisés pour créer des conteneurs Docker. C'est un moyen simple de construire de nouvelles images ou mettre à jour des images existantes, ou vous pouvez télécharger des images Docker que d'autres personnes ont déjà créés . Docker images sont la composante de construction des Docker.
Dockerfile
Docker peut construire automatiquement les images en lisant les instructions d'un Dockerfile. Un Dockerfile est un document texte qui contient toutes les commandes que vous auriez normalement à exécuter manuellement afin de construire une image Docker. En appelant "docker build" depuis votre terminal, vous pouvez voir Docker construire votre image étape par étape, exécuter les instructions successivement comme n'importe quel script shell ou autre.
Docker hub
Le site Docker Hub ou Registry contient toutes les images déjà construites. Ce sont des dépots publics à partir duquel vous pouvez charger ou télécharger des images. Il fournit une énorme collection d'images existantes pour votre usage. Ceux-ci peuvent être des images que vous créez vous-même ou vous pouvez utiliser des images que d'autres ont déjà créés.
Layers
Quand docker monte le root fs il démarre comme dans n'importe quel linux en lecture seule. Après avoir vérifier l'intégrité du système plutôt que de basculer en mode lecture-écriture, il ajoute un fichier en lecture-ecriture au dessus du root fs, qui est toujours en lecture seul, grâce au service "union file system". C'est un service qui permet de fusionner plusieurs points de montage appelés "branches". Ce fichier créé est appelé layer
Commandes
Voici quelques commandes qui vont vous permettre de gagner du temps lorsque vous allez utiliser docker :
- Supprimer toutes les images dont le tag n'a pas été défini : docker rmi $(docker images | grep "^
" | awk '{print $3}') - Permet d'arrêter et de supprimer tous les conteneurs : docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
- Adresse ip d'un conteneur : docker inspect --format 'Modèle:.NetworkSettings.IPAddress' ID_CONTENEUR
- Connexion au docker hub et envoie de son image : docker login et docker push
- Exécuter en arrière plan un conteneur : docker run -d ID_CONTENEUR