GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment créer une image Docker à partir d'un conteneur et d'un Dockerfile

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.tar
Guide du débutant sur le monde Docker


Docker
  1. Comment créer, répertorier et supprimer des conteneurs Docker sous Linux

  2. Extraire le fichier de l'image Docker ?

  3. Comment utiliser un Dockerfile pour créer une image Docker

  4. Comment empaqueter et transférer des images Docker d'un serveur à un autre

  5. Comment se détacher d'un conteneur Docker sans l'arrêter

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment créer un conteneur d'application Django Docker

Comment créer une image Windows Docker avec la balise Docker Build

Comment déployer et gérer un conteneur Docker MongoDB

Comment utiliser Docker Enregistrer l'image et l'exporter pour le partage

Comment créer une image Docker personnalisée avec Dockerfile