Debian

Créer automatiquement des images Docker dans Debian 10 (Buster)

Créer automatiquement des images Docker dans Debian 10 (Buster)

Docker est une technologie à la demande de nos jours, car de nombreuses grandes entreprises l'utilisent pour réduire leurs charges de travail. Il est utilisé pour créer, emballer et déployer des applications au-dessus de la technologie des conteneurs. Docker peut exécuter une application à forte utilisation des ressources avec une utilisation minimale des ressources. La virtualisation basée sur l'hyperviseur nécessite beaucoup de ressources en installant un système d'exploitation complet, tandis que Docker utilise des conteneurs très légers et évolutifs pour exécuter des applications.

Docker peut être installé sur Linux, Mac et Windows. Bien qu'il fonctionne nativement sur Linux, il nécessite que Hyper-V soit activé sur Windows.

Docker dispose également d'un Docker Hub, un service basé sur le cloud où nous pouvons trouver des images d'éditeurs vérifiés, et nous pouvons également publier et partager nos propres images personnalisées.  Une fois que nous avons extrait une image de Docker Hub, nous pouvons créer de nombreux conteneurs à partir de la même image.

Caractéristiques de Docker :

  1. C'est un logiciel open source.
  2. Fournit une plate-forme en tant que service pour exécuter l'application dans un environnement virtuel.
  3. Il est très facile de comprendre et d'utiliser la technologie Docker.
  4. Les applications Docker peuvent être facilement déplacées et exécutées sur n'importe quel système sur lequel Docker est installé.
  5. La migration des conteneurs Docker est très rapide de l'environnement cloud vers localhost et vice versa.

Docker peut lire et exécuter les instructions à l'intérieur du Dockerfile et créer automatiquement l'image spécifiée. Ce guide verra comment nous pouvons créer automatiquement une image Docker à l'aide d'un Dockerfile sur le système d'exploitation Debian 10 (Buster). Nous allons déployer le serveur Web Nginx et créer une image Docker personnalisée.

Conditions préalables:

  1. Accès aux privilèges « sudo ».
  2. Connaissance de base des commandes Docker.

Avant de commencer notre voyage, passons en revue rapidement certains concepts et exigences importants qui sont nécessaires pour comprendre ce guide. La première chose est que Docker devrait être installé sur votre système. Si vous ne l'avez pas déjà fait, vous pouvez suivre ce guide pour installer docker. Vous pouvez également utiliser le guide officiel disponible sur le site Web de Docker pour installer Docker sur Debian 10.

  1. Dockerfile : ce fichier décrit l'ensemble de la configuration que nous souhaitons avoir dans notre conteneur Docker. C'est un ensemble d'instructions qui définit comment construire une image.
  2. Image Docker: C'est en fait l'image du modèle que nous pouvons utiliser pour créer notre conteneur personnalisé. On peut dire qu'une image docker est un fichier immuable ou une image en lecture seule.
  3. Conteneur Docker: En termes très simples, un conteneur Docker est une instance de notre image docker. Nous pouvons dire que l'image Docker est une image de base, et nous créons un conteneur personnalisé en haut d'une image Docker en ajoutant un calque inscriptible sur cette image.  Nous pouvons utiliser une seule image Docker pour créer plusieurs conteneurs Docker.

J'espère que cet avis sera suffisant pour nous permettre de démarrer avec Docker. Voyons donc comment créer automatiquement des images à l'aide de Dockerfile.

Étape 1 : La toute première étape de la création d'une image commence par un fichier docker. Créons donc d'abord un répertoire de travail, et à l'intérieur, nous allons créer un Dockerfile.

$ mkdir mydock1 #  Ceci crée un nouveau répertoire.
$ nano Dockerfile # Ceci est notre fichier docker.

Nous pouvons utiliser n'importe quel éditeur de texte en plus de nano comme vi ou vim.

Étape 2. Ajoutez le contenu suivant au Dockerfile et enregistrez-le.

DE Ubuntu
MAINTENANT linuxhint
RUN apt-get update \
&& apt-get install -y nginx \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& echo "démon désactivé ;" >> /etc/nginx/nginx.conf
EXPOSE 80
Démarrage du service CMD nginx

Étape 3. Maintenant que notre Dockerfile est prêt, il est temps de créer l'image. Utilisez simplement la commande suivante :

$ sudo docker build -t webserver-image:v1 .

Syntaxe:

sudo docker build -t name:tag /path/to/directory/of/dockerfile

Noter: Exécutez toujours la commande docker avec l'utilisateur root ou les privilèges « sudo » pour éviter l'erreur : « J'ai obtenu l'autorisation refusée lors de la tentative de connexion au socket du démon Docker sur unix:///var/run/docker »

Dans la commande ci-dessus, l'image du serveur Web est le nom de notre image docker. Vous pouvez utiliser votre nom personnalisé ici. V1 est le tag de notre image.

Si tout se passe bien, nous devrions voir la sortie suivante :

Envoi du contexte de compilation au démon Docker 2.048 Ko

Étape 1/5 : DEPUIS Ubuntu

-> f643c72bc252

Étape 2/5 : MAINTAINER linuxhint

-> Utilisation du cache

-> 1edea6faff0d

Étape 3/5 : Exécutez apt-get update     && apt-get install -y nginx     && apt-get clean     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*     && echo " démon désactivé ; » >> /etc/nginx/nginx.conf

-> Utilisation du cache

-> 81398a98cf92

Etape 4/5 : EXPOSE 80

-> Utilisation du cache

-> 2f49ffec5ca2

Étape 5/5 : démarrage du service CMD nginx

-> Utilisation du cache

-> 855796a41bd6

Construit avec succès 855796a41bd6

Image de serveur Web : v1 marquée avec succès


Étape 4. Lorsque nous avons un certain nombre d'images, nous pouvons utiliser la commande ci-dessous pour rechercher une image spécifique :

$ sudo docker images

Étape 5. Nous allons maintenant exécuter notre image docker pour voir si elle fonctionne comme prévu :

$ sudo docker run -d -p 80:80 webserver-image:v1

Après une exécution réussie, il générera un long identifiant comme indiqué ci-dessous :

Étape 6. Si tout se passe bien, nous devrions pouvoir voir notre page Web s'exécuter sur notre navigateur Web nginx à l'intérieur du docker. Exécutez la commande ci-dessous pour le vérifier :

$ curl 'adresse_ip'

Veuillez garder à l'esprit que l'adresse IP que nous utilisons ici est l'adresse IP du conteneur Docker installé sur notre système d'exploitation hôte. Pour connaître exactement l'adresse IP requise ici, exécutez la commande suivante sur l'hôte :

$ ip a | grep ^ docker

La commande ci-dessus contiendra l'adresse IP que nous devons utiliser ici.

La commande curl ci-dessus affichera l'index.contenu html du serveur Web nginx.

Une autre méthode simple et directe consiste à transmettre le docker comme argument curl, comme indiqué ci-dessous :

Étape 7. Si vous le souhaitez, vous pouvez vérifier quel port et quels processus s'exécutent dans notre conteneur Docker. Exécutez la commande ci-dessous :

$ sudo docker ps

Ceci termine notre guide sur la création automatique d'images Docker sur Debian 10 (Buster). Nous avons vu comment nous pouvons construire des images Docker à partir de Dockerfile au lieu de modifier manuellement chaque image.

Bien que ce guide soit exécuté sur Debian 10, il devrait également fonctionner sur d'autres distributions basées sur Debian comme Ubuntu, Linux mint, etc. N'oubliez pas de partager ce guide avec les autres. Aussi, abonnez-vous à notre blog pour obtenir la dernière mise à jour et des HowTos sur Linux.

Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...