Outils pour utilisateurs

Outils du site


docker:creer_une_image_exemple1

Créer une image - Exemple 1

Un script app.py :

app.py
from flask import Flask
from redis import Redis, RedisError
 
... etc ...

Un fichier requirements.txt

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 <none> 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
docker/creer_une_image_exemple1.txt · Dernière modification: 2020/10/29 08:33 par marclebrun