Les conteneurs Docker sont l'un des composants essentiels de la plate-forme Docker qui regroupe le programme, les paramètres de configuration et les dépendances à l'aide de l'image Docker. L'image Docker est un simple modèle ou instantané d'un conteneur qui guide le conteneur sur la façon de conteneuriser une application. Ces images sont pour la plupart disponibles sur le registre officiel du hub Docker. Les utilisateurs peuvent également concevoir ces images en fonction des exigences du projet à l'aide de Dockerfile.
Ce blog expliquera :
- Qu'est-ce qu'un Dockerfile ?
- Commandes de base de Dockerfile
- Comment exécuter une instance à partir d’un fichier Docker dans Docker ?
- Comment exécuter une instance à partir d'un fichier Docker dans Docker Compose ?
- Conclusion
Qu'est-ce qu'un Dockerfile ?
Un Dockerfile est un fichier texte normal qui contient des commandes et des instructions qui définissent la structure de base d'un conteneur Docker. Ces instructions peuvent être exécutées dans le terminal sans aucun fichier, mais exécuter chaque commande une après une est une tâche mouvementée et complexe. Dockerfile permet aux développeurs de spécifier facilement toutes les exigences et instructions dans un seul fichier. Ce fichier sera ensuite utilisé pour créer le modèle de conteneur qui est une image Docker. Après cela, l'image Docker est exécutée pour démarrer l'instance dans le conteneur Docker.
Commandes de base de Dockerfile
Certaines commandes de base de Dockerfile utilisées pour définir l'instantané de base du conteneur sont répertoriées ci-dessous sous forme de tableau :
Commandes | Description |
DEPUIS | Le ' DEPUIS 'La commande est utilisée pour définir l'image de base du modèle de conteneur. Ces images sont extraites du registre Docker officiel Docker Hub. |
MAINTENANT | Le ' MAINTENANT ' La commande définit les informations sur l'auteur (nom et e-mail) qui crée l'image Docker. |
RÉPERT TRAVAIL | Il spécifie le répertoire de travail d'une application conteneurisée. |
COPIE | Utilisé pour copier les fichiers source et de configuration du système hôte vers le chemin spécifié du conteneur Docker. |
AJOUTER | Le ' AJOUTER ' La commande est similaire à la commande ' COPIE ', mais il prend également en charge l'URL distante pour ajouter le fichier de l'URL au chemin du conteneur, par exemple du référentiel GitHub au chemin du conteneur. |
COURIR | Le ' COURIR » est utilisé pour exécuter les commandes dans le conteneur. Dans Dockerfile, il est principalement utilisé pour gérer et installer des dépendances supplémentaires à l'intérieur du conteneur. |
CMD | ' CMD » définit les points par défaut des conteneurs Docker. Il définit essentiellement les exécutables et les paramètres par défaut du « POINT D'ACCÈS ». |
POINT D'ACCÈS | Le ' POINT D'ACCÈS La commande ' est également utilisée pour définir les exécutables du conteneur Docker. Il définit essentiellement les applications par défaut utilisées à chaque fois dans un conteneur. La commande ENTRYPOINT est également utilisée une fois dans un Dockerfile. |
UTILISATEUR | Cette commande est utilisée pour définir l'UID (nom d'utilisateur) pour exécuter les commandes dans le conteneur |
VOLUME | Le ' VOLUME 'La commande est utilisée pour lier ou monter le volume externe (système de fichiers) avec un conteneur. |
ENV | Le ' ENV 'La commande est utilisée pour définir les variables d'environnement du conteneur. |
ARG | Le ' ARG ' est utilisé pour transmettre les arguments à l'intérieur du conteneur. |
EXPOSER | Le ' EXPOSER ' La commande spécifie les ports d'exposition sur lesquels le conteneur sera exécuté. |
CONSTRUIRE | Il lit les instructions de l'image de base mais déclenche ces instructions via l'image en aval. |
ÉTIQUETTE | Le ' ÉTIQUETTE ' est utilisé pour spécifier les métadonnées de l'instantané du conteneur. |
Comment exécuter une instance Docker à partir d'un fichier Docker dans Docker ?
Pour exécuter une instance ou un conteneur Docker à l'aide de Dockerfile, créez d'abord un Dockerfile. Ensuite, créez l'instantané de base du conteneur à l'aide de Dockerfile. Après cela, exécutez l'instantané pour démarrer l'instance Docker.
Suivez les instructions ci-dessous à titre d’illustration.
Étape 1 : Créer un fichier Docker
Tout d’abord, créez un Dockerfile. N'oubliez pas que Dockerfile n'a aucune extension de fichier. Après cela, collez les commandes suivantes dans le fichier :
DE golang : 1.8
RÉPERT TRAVAIL / aller / src / application
COPIER main.go .
COUREZ, allez construire -O serveur Web .
EXPOSER 8080 : 8080
POINT D'ACCÈS [ './serveur Web' ]
Étape 2 : Créer un fichier programme
Ensuite, créez un nouveau fichier nommé « main.go » qui contient le simple programme Golang. Pour cela, collez le programme suivant dans le fichier :
paquet principalimporter (
'fmt'
'enregistrer'
'net/http'
)
gestionnaire de fonctions ( Dans http.ResponseWriter, r * http.Requête ) {
fmt.Fprintf ( Dans , 'Bonjour ! Bienvenue dans le didacticiel LinuxHint' )
}
fonction principale ( ) {
http.HandleFunc ( '/' , gestionnaire )
log.Fatal ( http.ÉcouterEtServir ( '0.0.0.0:8080' , nul ) )
}
Étape 3 : Générer un instantané du conteneur
Maintenant, créez l’instantané Docker du conteneur en utilisant « docker build -t
Dans la commande ci-dessus, le ' -t L'option 'définit le nom ou la balise de l'image', -F ' L'option spécifie le chemin d'accès au Dockerfile à partir duquel le moteur Docker doit lire le contexte de construction :
Pour vérifier si l'image est créée avec succès ou non, exécutez le ' images docker
Le résultat montre que nous avons réussi à créer l’instantané du conteneur à partir du Dockerfile :
Étape 4 : exécutez l'instantané pour lancer le conteneur
Maintenant, démarrez l'instance de Docker dans le conteneur Docker en exécutant l'instantané du conteneur créé à l'étape ci-dessus :
exécution du docker -p 8080 : 8080 --nom suite -d allez-imgDans la commande ci-dessus, le ' -p ' L'option exécute le conteneur sur le ' 8080 ' port, ' -nom ' définit le nom du conteneur et le ' -d ' L'option exécute le conteneur en mode détaché (service en arrière-plan) :
Pour vérifier si le conteneur est en cours d'exécution ou non, répertoriez les conteneurs en cours d'exécution à l'aide du « docker ps ' commande:
docker ps
Maintenant, accédez à « http://localhost:8080 ' et vérifiez si l'application s'exécute sur le port exposant ou non :
Le résultat ci-dessus indique que nous avons effectivement démarré l'instance Docker à l'aide de Dockerfile.
Comment exécuter une instance à partir d'un fichier Docker dans Docker Compose ?
Docker compose est un autre plugin majeur de la plateforme Docker qui nous permet d'exécuter plusieurs instances dans différents conteneurs en même temps. Les utilisateurs peuvent également exécuter l'instance Docker à partir de Dockerfile à l'aide du plugin Docker compose. À titre d’illustration, suivez les étapes indiquées.
Étape 1 : Créer un fichier Docker
Tout d’abord, créez un Dockerfile. Par exemple, nous utilisons le même Dockerfile et le même fichier programme que ceux utilisés dans la section ci-dessus :
DE golang : 1.8RÉPERT TRAVAIL / aller / src / application
COPIER main.go .
COUREZ, allez construire -O serveur Web .
EXPOSER 8080 : 8080
POINT D'ACCÈS [ './serveur Web' ]
Étape 2 : Créer un fichier docker-compose.yml
Ensuite, créez un « docker-compose.yml ' et copiez les paires de clés suivantes dans le fichier :
version: '3'prestations de service:
la toile:
construire: .
ports :
- 8080 : 8080
Dans l'extrait mentionné ci-dessus :
- ' prestations de service » est utilisé pour spécifier les services de composition qui seront exécutés dans un conteneur séparé. A titre d’illustration, nous n’avons configuré qu’un seul service » la toile » pour garder le code propre et simple.
- ' construire 'La paire de clés est utilisée pour lire le contexte de construction à partir du Dockerfile. Ici, Docker lira les instructions du Dockerfile et construira le conteneur en conséquence.
- ' ports La clé ' définit les ports exposants sur lesquels le conteneur sera exécuté.
Étape 3 : Démarrer l'instance Docker
Maintenant, exécutez l'instance Docker dans un conteneur en utilisant le ' docker-composer ' commande:
docker-composer -d
Pour vérification, vérifiez la liste des conteneurs de composition en cours d’exécution à l’aide du « docker-composer ps ' commande:
docker-composer psLa sortie montre que le « la toile ' Le service s'exécute avec succès dans le ' golangapp-web-1 ' récipient:
Accédez au port d'exposition du service de composition et vérifiez si le programme est en cours d'exécution ou non. Le résultat ci-dessous montre que nous avons démarré avec succès l'instance Docker à partir de Dockerfile à l'aide de Docker compose :
Il s’agit d’exécuter une instance Docker à partir d’un Dockerfile.
Conclusion
Pour exécuter une instance Docker dans un conteneur à partir d'un Dockerfile, créez d'abord Dockerfile. Ajoutez les commandes à l'intérieur du fichier pour créer l'image ou le modèle du conteneur Docker. Ensuite, créez l’image du conteneur ou l’instantané à l’aide du bouton « docker build -t