Docker est un outil open-source qui packages application (s), tous les packages requis et son système d'exploitation de base en packages conteneurisés. Comme les conteneurs Docker sont autonomes, ils fonctionnent sur n'importe quel système sans avoir besoin de reconfiguration.
Docker construit des conteneurs à partir d'images. Une image Docker est un package autonome qui définit toutes les exigences nécessaires pour exécuter une application, telle que le système d'exploitation, l'exécution, les outils système, les bibliothèques, les configurations, etc. Docker convertit les images en conteneurs pendant l'exécution.
Docker construit des images à partir de configurations définies dans un dockerfile. Un dockerfile est simplement un fichier de configuration qui indique toutes les instructions sur la création d'une image docker. En conséquence, la construction d'images Docker à l'aide d'un dockerfile est plus facile et beaucoup plus efficace.
Ce guide vous guidera dans la création d'un DockerFile et l'utilisera pour construire une image Docker.
Format dockerfile
Le dockerfile est un document texte brut. Les inscriptions dans le dockerfile sont dans le format suivant:
$ Argument d'instruction (s)
La première partie définit les commandes docker que vous pouvez utiliser dans un shell docker. Le second représente les arguments ou les valeurs spécifiques à passer à l'instruction principale.
NOTE: Les instructions ne sont pas sensibles à la cas. Cependant, Docker recommande d'utiliser majuscules pour les distinguer des arguments.
Voici quelques instructions populaires dans un dockerfile.
DEPUIS - Cette instruction définit l'image parent pour les instructions ultérieures. De la clause doit être la première entrée d'un dockerfile. Il peut venir après une directive de commentaire ou d'analyse ou d'arg utilisé dans la directive.
Arg - Il définit les variables utilisées pendant la construction une fois que vous avez exécuté la commande docker build sur le fichier.
CMD - Cela définit la commande exécutée lors de la création de conteneurs. Docker n'autorise qu'une instruction CMD par fichier. Lorsque vous avez plus d'un défini, il exécute la dernière commande.
ÉTIQUETER - L'instruction d'étiquette définit les informations sur les métadonnées de l'image. Vous pouvez ajouter autant d'étiquettes que vous le voyez s'adapter sous la forme de paires de valeurs clés. Par exemple, les métadonnées d'image peuvent inclure le numéro de version, les informations sur l'auteur, la description, etc.
COURIR - Définit les instructions à exécuter pendant la construction d'image.
UTILISATEUR - Cette instruction définit le nom d'utilisateur ou l'UID de l'utilisateur lors de l'exécution de l'image ou des instructions dans un Dockerfile tel que CMD, Run et EntryPoint.
POINT D'ACCÈS - Il définit les commandes que Docker s'exécute sur la création de conteneurs. Les options sont remplacées dans la ligne de commande pendant le démarrage du conteneur.
AJOUTER - Cette instruction copie les fichiers et répertoires de la source spécifiée vers une destination spécifiée. La source peut être un chemin local ou une URL externe. Si les fichiers sont des archives, Docker les déballe automatiquement dans l'image.
VOLUME - Les instructions de volume vous permettent de créer des points de montage à partir des répertoires de machines d'hôte ou d'autres conteneurs.
EXPOSER - Cette instruction indique à Docker sur quel port écouter pendant l'exécution.
Env - Il définit les variables d'environnement.
Travail - Définit le répertoire de travail actuel. Si le répertoire spécifié n'existe pas, Docker en créera automatiquement un.
Ce qui précède est quelques instructions standard que vous pouvez utiliser dans un dockerfile.
Comment créer un dockerfile
Le processus de création d'un dockerfile est simple. Commencez par créer un répertoire de travail pour vos opérations Docker. Ensuite, créez un dockerfile et modifiez-le avec votre éditeur de texte préféré.
$ CD ~
$ mkdir docker
$ cd docker
$ touch dockerfile
$ vim dockerfile
Nous commençons par obtenir l'image de base du Docker Hub. Nous pouvons le faire en utilisant l'instruction de la From dans le dockerfile.
Dans cet exemple, nous créerons un conteneur simple contenant un serveur Nginx en cours d'exécution sur Debian 10 Image.
Debian 10 Image sur Docker Hub
Modifiez le dockerfile et ajoutez les entrées suivantes.
De Ebian: 10.9
Exécutez la mise à jour apt-get && \
apt-get install -y nginx \
Étiquette maintellerer = ”Linuxhint”
Étiqueter la version = ”1.0 ”
Étiquette Description = ”Une image simple exécutant nginx sur Debain 10”
Exposer 80 / TCP
Cmd [«nginx», «-g», «démon off;»]
Dans le dockerfile ci-dessus, nous commençons par définir l'image de base (Debian 10.9)
Nous exécutons diverses commandes APT pour mettre à jour les packages et installer Nginx Web-Server.
Nous ajoutons ensuite des informations sur les métadonnées sur l'image, y compris le mainteneur, la version et la description.
Enfin, nous définissons le port d'expose, et la commande éteint le démon Nginx. La commande ci-dessus empêche le conteneur de s'arrêter.
Enregistrez le fichier et exécutez la construction docker contre le fichier.
Comment construire une image dockerfile
Une fois le dockerfile terminé, nous pouvons procéder à la construction de l'image. Exécutez la version Docker Build à l'intérieur du répertoire Docker:
$ cd ~ / docker
$ docker build -pull -rm -f "dockerfile" -t docker: dernier "."
Dans la commande ci-dessus, nous utilisons la commande docker build et passons diverses options. Par exemple, le -Pull dit à Docker d'essayer de tirer la dernière version de l'image.
Le -RM supprime les conteneurs immédiats une fois le processus de build d'image terminé.
-f spécifie le nom dockerfile.
Enfin, l'option -t définit la balise de l'image.
Les commandes ci-dessus construisent avec succès l'image et la stockeront sur votre disque local.
Vous pouvez vérifier que l'image existe en appelant la commande:
$ docker image ls
$ docker dernier 162e94589bec il y a 2 minutes 233 Mo
Comment créer un conteneur Docker
Maintenant que nous avons l'image du dockerfile, nous pouvons aller de l'avant et engendrer un conteneur. Pour ce faire, nous utilisons la commande docker run comme:
$ docker run -p 80:80 --name nginx docker
Les commandes ci-dessus lanceront le conteneur avec le nom nginx et lieront le conteneur au port 80.
Pour afficher des conteneurs en cours d'exécution, utilisez la commande:
$ docker conteneur ls
1C90266035B5 Nginx: Dernier 57 secondes en haut de 56 secondes 80 / TCP Nginx
La commande ci-dessus affiche le conteneur Nginx en cours d'exécution.
Conclusion
Ce tutoriel a couvert l'écriture dockerfiles, la création d'images et l'exécution d'un conteneur Docker à partir des images. Pour en savoir plus sur Dockerfiles, considérez la documentation.