====== 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