Formation Devops | Formation Docker : 27- Les Dockerfiles

www.itgalaxy.io 

Un dockerfile est un fichier texte (donc versionable ) de description qui permet de générer une image.
Il est basé sur une image standard auquel on ajoute les éléments propres à l’application que l’on veut déployer.

Instructions de bases :

FROM permet de définir depuis quelle base votre image va être créée.

LABEL maintainerpermet de définir l’auteur de l’image

RUN permet de lancer une commande, mais aura aussi pour effet de créer une image intermédiaire.

ADD permet de copier un fichier depuis la machine hôte ou depuis une URL.

EXPOSE permet d’exposer un port du container vers l’extérieur

CMD détermine la commande qui sera exécutée lorsque le container démarrera.

ENTRYPOINT permet d’ajouter une commande qui sera exécutée par défaut

WORKDIR permet de définir le dossier de travail pour toutes les autres commandes (par exemple RUN,
CMD, ENTRYPOINT et ADD)

ENV permet de définir des variables d’environnements qui pourront ensuite être modifiées grâce au
paramètre de la commande run –env=

VOLUMES permet de créer un point de montage qui permettra de persister les données.
On pourra alors choisir de monter ce volume dans un dossier spécifique en utilisant la commande run -v

Exemple de Dockerfile:

Pour builderune images à partir d’un dockerfile:
docker build –tag bulletinboard:1.0.

Chaque commande : ADD, COPY, RUNestlancer dans un sous conteneur.

Utilisation de cache durant le buildpour éviter de refaire des commandes déjà lancer avant.

Exemple utilisation de cache :

Si je le construis une première fois sans préparer mon environnement de build,je vais voir s’afficher :

  1. Les logs de téléchargement de Ubuntu 19.04.
  2. Les logs de la commande apt(très verbeux).
  3. Quelques lignes qui indiquent qu’on lance un WORKDIR.
  4. La copie du fichier file1 qui a échoué car j’ai oublié (pour les besoins de l’exemple) de l’ajouter à côté de mon Dockerfile.

Corrigeons l’erreur en ajoutant le fichier à côté du Dockerfile et relançons le build.

Docker utilise un cache pour éviter de refaire une étape qu’il aurait déjà faite. Systématiquement, la ligne qui suit Using cache est ce fameux hash qui qui permet de
retrouver l’étape déjà exécutée.
Chaque hash sert à identifier le FileSystemd’un conteneur intermédiaire dans lequel Docker a sauvegardé le résultat d’une exécution. Grâce à ça, quand Docker arrive à une étape et se rend compte qu’il
l’a déjà exécutée par le passé, il récupère directement son résultat plutôt que de la rejouer. On peut retrouver tous les hash des étapes d’une image à l’aide de la commande docker history, de l’étape la plus ancienne à
la plus récente.






1. Nous contactez


2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io