Docker

Comment fonctionne Dockerfile?

Comment fonctionne Dockerfile?
Vous ne pouvez déployer qu'un seul conteneur à l'aide de l'image docker. Cependant, si vous devez déployer plusieurs conteneurs (chacun pour des tâches différentes) à partir de la même image, que se passe-t-il ?? Vous pouvez résoudre ce problème à l'aide du fichier docker.

Dockerfile est un simple fichier texte qui contient toutes les commandes que l'utilisateur peut appeler sur la ligne de commande pour assembler ou créer une image. Avec l'aide de docker build, vous pouvez facilement automatiser la build qui exécute plusieurs commandes définies successivement dans le dockerfile.

Par exemple, vous souhaitez télécharger l'image docker depuis le hub docker pour vos besoins de développement spécifiques. Ensuite, vous souhaitez mettre à jour l'image, installer des packages pour votre processus de développement. Dans ce cas, vous pouvez créer un fichier docker, inclure tous les paramètres pour vos besoins spécifiques et créer votre image personnalisée. Après avoir créé un fichier docker, vous pouvez l'utiliser encore et encore pour créer la même image sans installer manuellement tous les packages requis pour votre processus de développement.

Dockerfile de base

Avant de travailler avec dockerfile s'il est important de savoir comment créer un dockerfile. Dockerfile inclut des mots-clés spécifiques qui peuvent être utilisés pour créer une image spécifique. Une brève explication de tous les mots-clés utilisés dans un fichier docker est répertorié ci-dessous :

Création du fichier Docker

Dans cette section, nous allons créer un fichier docker pour créer une image de serveur LAMP à partir de l'image de base d'Ubuntu.

Tout d'abord, vous devrez créer un répertoire pour stocker le fichier docker. Vous pouvez le créer avec la commande suivante :

LAMPE mkdir

Ensuite, créez un répertoire nommé Dockerfile dans le répertoire :

nano LAMP/Dockerfile

Ajoutez les lignes suivantes :

DE Ubuntu:dernier
MAINTENANT Hitesh Jethva
ENV DEBIAN_FRONTEND=non interactif
RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl","-D","PREMIER PLAN"]
EXPOSE 8080

Enregistrez et fermez le fichier lorsque vous avez terminé.

Construire une image avec Dockerfile

Après avoir créé le Dockerfile, vous pouvez facilement créer une image LAMP personnalisée à l'aide du Dockerfile.

Tout d'abord, remplacez le répertoire par LAMP et exécutez la commande suivante pour créer l'image à partir de ce fichier :

LAMPE CD
docker build -t "lampe: Dockerfile".

La commande ci-dessus commencera à télécharger la dernière image d'Ubuntu à partir du Docker Hub et à installer les packages nécessaires spécifiés dans le Dockerfile. Une fois que l'image a été créée avec succès, vous devriez voir la sortie suivante :

Envoi du contexte de construction au démon Docker 2.048 Ko
Étape 1/6 : DEPUIS ubuntu:latest
dernier : Extraire de la bibliothèque/ubuntu
54ee1f796a1e : Tirez terminé
f7bfea53ad12 : extraction terminée
46d371e02073 : Tirez terminé
b66c17bbf772 : extraction terminée
Résumé : sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Statut : Image plus récente téléchargée pour ubuntu : la dernière
---> 4e2eef94cd6b
Étape 2/6 : MAINTENANT Hitesh Jethva
---> Courir au 047977af2c2a
Retrait du conteneur intermédiaire 047977af2c2a
---> 1331df625c4c
Etape 3/6 : ENV DEBIAN_FRONTEND=non interactif
---> Courir en 3597152c7a1b
Retrait du conteneur intermédiaire 3597152c7a1b
---> 86c82c95e75d
Étape 4/6 : RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Retrait du conteneur intermédiaire 322532299fd9
---> f6897a9554f7
Etape 5/6 : CMD ["apachectl","-D","FOREGROUND"]
---> Courir en 669635bc8bcb
Retrait du conteneur intermédiaire 669635bc8bcb
---> e8400eb2e677
Etape 6/6 : EXPOSE 8080
---> Courir en 937ae2b2d305
Retrait du conteneur intermédiaire 937ae2b2d305
---> 2123a857361d
Construit avec succès 2123a857361d
Lampe balisée avec succès : Dockerfile

Vous pouvez maintenant lister votre nouvelle image en exécutant la commande suivante :

images docker

Vous devriez voir la sortie suivante :

TAILLE CRÉÉE D'ID D'IMAGE D'ÉTIQUETTE DE RÉFÉRENCE
lampe Dockerfile 2123a857361d il y a 44 secondes 520MB
Ubuntu dernier 4e2eef94cd6b il y a 8 jours 73.9 Mo

Maintenant, vous avez une image de serveur LAMP personnalisée dans votre main. Vous pouvez également voir l'historique de chaque commande avec la commande suivante :

lampe d'historique docker: Dockerfile

Vous devriez voir la sortie suivante :

IMAGE CRÉÉE CRÉÉE PAR TAILLE COMMENTAIRE
2123a857361d il y a 16 minutes /bin/sh -c #(nop) EXPOSE 8080 0B
e8400eb2e677 il y a 16 minutes /bin/sh -c #(nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 il y a 16 minutes /bin/sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d il y a 17 minutes /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=nonin… 0B
1331df625c4c il y a 17 minutes /bin/sh -c #(nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b il y a 8 jours /bin/sh -c #(nop) CMD ["/bin/bash"] 0B

Création d'un conteneur à partir d'une image LAMP

Maintenant, vous pouvez exécuter un conteneur à partir de votre image à l'aide de la commande suivante :

docker run -dit lampe: Dockerfile

Une fois le conteneur démarré, vous devriez voir la sortie suivante :

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Vous pouvez vérifier le conteneur en cours d'exécution à l'aide de la commande suivante :

docker ps

Vous devriez obtenir la sortie suivante :

COMMANDE D'IMAGE D'ID DE CONTENEUR ÉTAT CRÉÉ NOMS DE PORTS
lampe c14794784eb2:Dockerfile "apachectl -D FOREGR… " il y a 2 minutes Jusqu'à 2 minutes 0.0.0.0:8080->8080/tcp quirky_ramanujan

Conclusion

Dans ce guide, vous avez appris ce qu'est Dockerfile et comment créer une image docker avec Dockerfile. Ceci est très utile pour créer vos images personnalisées au lieu de valider des modifications sur une image extraite.

Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...