====== Créer une image - Exemple 1 ====== Un script **app.py** : from flask import Flask from redis import Redis, RedisError ... etc ... Un fichier **requirements.txt** Flask Redis Un fichier **Dockerfile** : FROM python:2.7-slim WORKDIR /app COPY . /app RUN pip install -r requirements.txt EXPOSE 8000 ENV NOM Brigitte CMD ["python", "app.py"] * **FROM** : indique l'image à partir de laquelle on va créer notre image * **python** : nom de l'image. Elle sera téléchargée depuis [[https://hub.docker.com]] * **2.7-slim** : version de l'image à utiliser * **WORKDIR** : spécifie le répertoire courant, dans lequel sont exécutées les actions suivantes * **/app** : nom du dossier à partir de la racine du conteneur * **COPY** : copier des fichiers vers le conteneur * **.** : on copie tout ce qu'il y a dans le dossier en cours * **/app** : on copier vers le dossier **/app** du conteneur * **RUN** : exécuter quelque chose * **pip install -r requirements.txt** : installe dans le conteneur les dépendances listées dans le fichier * **EXPOSE** : rend accessible un port depuis l'extérieur du conteneur * **8000** : port exposé * **ENV** : créer une variable d'environnement dans le conteneur * **NOM** : nom de la variable * **Brigitte** : valeur * **CMD** : spécifie une commande à exécuter lorsque le conteneur est démarré * **["python", "app.py"]** : commande et liste d'arguments Construire l'image : docker build -t monimage . * **-t monimage** : donner un nom à l'image * **.** : l'image est créée à partir du contenu du répertoire courant Si l'image existe déjà, elle est renommée en **** et la nouvelle image prend sa place. Voir les images créées : docker images REPOSITORY TAG IMAGE ID CREATED SIZE monimage latest 56f50c6a1076 About a minute ago 159MB python 2.7-slim eeb27ee6b893 6 months ago 148MB Lancer ce conteneur : docker run -p 8000:8000 monimage * **-p 8000:8000** : mapper le port 8000 du conteneur au port 8000 de l'hôte * **monimage** : nom du conteneur à lancer