Docker est un outil de gestion de plate-forme ouverte pour les conteneurs Linux. Il permet aux développeurs et aux administrateurs système de créer et de conditionner des applications dans des conteneurs légers. Docker comprend les composants suivants :
- Moteur Docker - Un outil d'exécution et d'empaquetage portable et léger
- Centre Docker – Un service cloud pour partager des applications et automatiser les flux de travail
Docker est utilisé pour créer des conteneurs d'applications basés sur des images. Les conteneurs basés sur des images regroupent une application avec la pile d'exécution individuelle dans un seul conteneur. Cela rend le conteneur indépendant du système d'exploitation hôte et de la version du noyau. Par conséquent, vous pouvez exécuter la même application, sans modification, sur des ordinateurs portables, des machines virtuelles de centre de données et n'importe quel cloud. Vous pouvez transférer ce conteneur sur une autre machine qui exécute Docker et exécuter l'application sans aucun problème de compatibilité.
Créer une image à partir d'un conteneur
Vous pouvez enregistrer l'état actuel d'un conteneur en tant que nouvelle image en utilisant le "docker commit " commande. Ceci est utile si vous avez modifié un conteneur et souhaitez valider les modifications dans une nouvelle image pour une utilisation ultérieure.
L'exemple de la diapositive crée un nouveau conteneur nommé "geeklab" à partir de l'image centos:7 et exécute la commande bash shell dans le conteneur.
# docker run -i -t --name geeklab centos:7 /bin/bash [root@873abc18f59d /]#
Depuis le conteneur, la commande yum est utilisée pour installer le package httpd.
[root@873abc18f59d /]# yum install httpd
Utilisez la commande exit pour arrêter un conteneur en cours d'exécution.
[root@873abc18f59d /]# exit exit
La commande "docker commit" enregistre les modifications dans une nouvelle image. Utilisez l'option -m pour fournir un message décrivant les modifications. Utilisez le -a possibilité de fournir des informations sur l'auteur. Indiquez l'ID ou le nom du conteneur, le nom de l'image et une balise. Exemple :
# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1 sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd
La sortie de la commande docker images inclut désormais la nouvelle image.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7/httpd v1 b3c42dd36e24 20 seconds ago 334 MB
Créer une image à partir d'un Dockerfile
Utilisez la commande docker build pour créer une nouvelle image à partir des instructions contenues dans un fichier nommé "Dockerfile “. Le format du Dockerfile est :
# Comment INSTRUCTION arguments
L'instruction n'est pas sensible à la casse mais la convention est de mettre l'instruction en majuscule pour la distinguer des arguments. Docker exécute les instructions dans un Dockerfile dans l'ordre. Vous créez une nouvelle image à partir d'une image de base. La première instruction est FROM et spécifie l'image de base à utiliser. Exemple :
FROM centos:7
Utilisez l'instruction RUN pour spécifier les commandes à exécuter dans une nouvelle couche au-dessus de l'image actuelle et valider les résultats. Exemple :
RUN yum –y install httpd
L'instruction ENTRYPOINT spécifie la commande que le conteneur créé à partir de l'image exécute. Exemple :
ENTRYPOINT /usr/sbin/httpd –D FOREGROUND
Reportez-vous à la page de manuel de dockerfile pour une description de toutes les instructions. L'URL suivante fournit également des descriptions, l'utilisation et des exemples de toutes les instructions Dockerfile disponibles :https://docs.docker.com/reference/builder/.
Enregistrer et charger une image ou un conteneur
Vous pouvez créer des fichiers tar d'images et de conteneurs à utiliser sur des systèmes qui n'ont pas accès à Docker Hub. Utilisez le "docker save ” pour enregistrer les images dans un fichier tar. Vous pouvez soit enregistrer toutes les images d'un référentiel dans un fichier tar, soit enregistrer une image spécifique dans un fichier tar. Créez le fichier tar en redirigeant STDOUT vers un fichier tar ou utilisez l'option -o pour spécifier un nom de fichier tar de sortie.
L'exemple suivant redirige STDOUT pour enregistrer toutes les images du référentiel centos vers centos-all.tar :
# docker save centos > centos-all.tar
L'exemple suivant enregistre l'image centos:latest dans le fichier centos-lates.tar.
# docker save -o=centos-latest.tar centos:latest
Utilisez la commande docker load pour charger une image à partir d'un fichier tar dans un référentiel Docker local. L'exemple suivant charge les images du fichier centos-all.tar :
# docker load --input centos-all.tarGuide du débutant sur le monde Docker