Docker - TP 2 : Dockerfile

Thomas S.

2018-2019

Docker - TP 2 : Dockerfile

Sommaire

  • Une image basique
  • Très personnalisable

Une image basique

Dockerf... quoi ?

  • Fichier permettant de build un image
  • Nom du fichier : Dockerfile
  • Script de définition propre à Docker

Une image basique

Dockerfile

FROM debian

RUN apt-get update -y && \
    apt-get install -y cowsay

CMD /usr/games/cowsay "Hello World !"
docker build -t test .
docker run test

Très personnalisable

Instructions

  • FROM : Base de l'image
  • RUN : Commandes requises pour mettre en place
  • CMD : Ce qui doit être éxécuté

Très personnalisable

Instructions

  • VOLUME : Lié volume entre container et host
  • EXPOSE : Ports ouverts du container vers l'host
  • COPY ADD : Copier des fichiers dans l'image (Diff. )
  • WORKDIR : Définit le chemin d'éxécution

Très personnalisable

TP1

Faire une image Ubuntu Artful Aardvark permettant de donner le checksum MD5 du fichier suivant (directement présent dans l'image).
Solution : 241cead4562ebf274f76f2e991750b9d

Très personnalisable

TP1

Faire une image php:apache permettant d'afficher ce projet Hello World ! du framework Slim sur le port 9876 de l'host.

Très personnalisable

Images multiples

  • Images séparé par FROM
  • Utilité : Créé des images légères
  • Seul la dernière image est conservée
  • TL;DR : Idéal dans mise en place/compilation logiciel

Très personnalisable

Images multiples : exemple

FROM ubuntu AS build-env
//Some compilation
FROM debian
COPY --from=build-env /path/on/build/env.so /usr/local/lib/

CMD ........

Très personnalisable

TP3

Faire une image Linux du projet Aseprite , compilée à partir d'une autre image Linux. Pour l'éxécuter, il faudra s'inspirer de cet article : Running GUI apps with Docker .
Il sera demandé de pouvoir monter le dossier /sprites de l'image à l'éxécution du container pour pouvoir partager les documents entre l'host et le container.

Très personnalisable

Docker Hub

  • Registre pour sauvegarder ses containers
  • Version personnelle
  • docker login (Inscription ici)
  • docker push NOM_DE_L_IMAGE

Très personnalisable

Gitlab et intégration continue

Dernière maj : Voir Github 🐻 1 /
Précédent
Suivant