TD01 - Initiation à Docker docker devops

Publié le : 17 Janvier 2020 13:01

À propos de Docker

docker.png

Logo de Docker

Docker est un logiciel libre qui automatise le déploiement d'applications dans des conteneurs logiciels6. Selon la firme de recherche sur l'industrie 451 Research, « Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur ». Ceci permet d'étendre la flexibilité et la portabilité d’exécution d'une application, que ce soit sur la machine locale, un cloud privé ou public, une machine nue, etc.pypx

Objectif du TD

L'objectif de ce TD est de comprendre et manipuler l'outil de gestion de containeur Docker. À la suite de ce TD, vous serez administrer des containeurs comme vous le faites avec les machines virtuelles des autres cours.

À savoir, vous devrez pouvoir :

  • Importer un conteneur dans votre magasin
  • Lister les conteneurs de votre magasin
  • Supprimer un conteneurs d'un magasin
  • Lancez un conteneur
  • Se connecter à un conteneur
  • Ouvrir un terminal sur un conteneur
  • Arrêtez un conteneur
  • Sauvegarder un conteneur

Vue globale des TD de la journée

Aujourd'hui, l'objectif est que vous mettiez en place au cours de la journée l'infrastructure d'usine logicielle suivante :

td-jour1.png

Infrastructure de l'usine logicielle à mettre en place au cours du jour 1

Liens intéressant

Actions courantes

Importer un conteneur

1 # import d'une archive dans l'inventaire
2 cat sme-base.tar.gz | docker load

Lister les conteneurs du magasin

1 # lister les conteneurs
2 docker images

Lancer un conteneur

1 # lance le conteneur et exécute ses commandes
2 docker run –d –P sme/base

Vérifier les conteneurs actifs

Notez l'ID des conteneurs, ça sera utile par la suite

1 # liste les conteneurs actifs
2 docker ps -a

Se connecter (en mode console) au conteneur

Attention, vous vous connecter comme si vous êtiez physiquement sur la machine.

Astuce Ctrl-D pour sortir

1 docker attach id_de_l_image

Se connecter comme SSH au conteneur

1 # se connecter comme SSH
2 docker exec -ti id_de_l_image /bin/sh
3 
4 
5 # Attention n'oubliez pas le bash à la fin
exec_ti.png

Capture

Vérifier les ports ouvert sur le conteneur

Comme docker est hébergé localement sur votre machine, il gère les ports ouverts sur le conteneur. Vérifier comment docker gère les ports des conteneurs.

1 # Vérifier les ports ouverts
2 docker port id_de_l_image
port.png

Capture

Nommer un conteneur

Je suis certains que vous commencer à vous perdre avec tous ces ID de conteneur. Docker a implémenté une fonction qui vous permettra de mieux vous y retrouver le dommage de conteneur.

1 # Lancer un conteneur avec un nom
2 docker run -d --name nom_instance -h nom_instance nom_image

Lier les conteneurs

Vous vous douter que le but est de construire un réseau entre les conteneurs. Découvrez comment Docker permet d'interconnecter les instances entre elles.

Avec la nomenclature suivante:

  • nom_instance : nom de l'instance
  • nom_image : nom de l'image
  • nom_lie: nom de l'instance que l'on souhaite lier
1 # lancer le container avec un lien
2 docker run -d --name nom_instance -h nom_instance --link nom_lié:nom_lié nom_image

Exercices

Lier le conteneur sme/base que vous nommerez base et le conteneur sme/git que vous nommerez git.

Vérifier que les conteneurs communique bien entre eux

1 ping base
2 
3 ping git
4 
5 # si ping n'est pas present
6 apt update
7 apt install iputils-ping

Enregistrer un conteneur

Commande à lancer pour enregistrer un conteneur

1 # Enregistrement
2 docker save nom_conteneur | gzip -c > nom_conteneur.tar.gz

Ouvrir un port particulier sur un conteneur

Ouvrir un port sur un conteneur

1 # ouvrir un port
2 
3 docker run -p 1234:1234 sme/base
4 
5 
6 # si le conteneur est déjà ouvert
7 docker stop base
8 docker commit base base2
9 docker run -p 1234:1234  -td base2

petite synthèse des fonctionnements entre les commandes

qmXEB2rBJKyiIaajrbJGrRLJqF3CJKm7SQmKKlAJirEB57Bo4rEuuC8GDNd59ObvoIZAYahpk90bi1kMd9-Rcrc2PXoA8-1AYnFBKW40.png

fonctionnement entre les commandes

 Retour