Skip to content

Cheatsheet

Résumé des commandes du Dockerfile

Voici un bref résumé des quelques commandes de base que nous avons utilisées dans notre Dockerfile.

  • FROM démarre le Dockerfile. Il est obligatoire que le Dockerfile commence par la commande FROM. Les images sont créées en couches, ce qui signifie que vous pouvez utiliser une autre image comme image de base pour la vôtre. La commande FROM définit votre couche de base. En tant qu'arguments, vous pouvez ajouter le nom de l'image. Facultativement, vous pouvez ajouter le nom d'utilisateur de Docker Cloud du mainteneur et la version de l'image, dans le format nom_utilisateur/nom_image:version.
  • RUN est utilisé pour construire l'image que vous créez. Pour chaque commande RUN, Docker exécute la commande, puis crée une nouvelle couche de l'image. De cette manière, vous pouvez revenir en arrière facilement à des états précédents de votre image. La syntaxe d'une instruction RUN consiste à placer le texte complet de la commande shell après RUN (par exemple, RUN mkdir /user/local/foo). Cela s'exécutera automatiquement dans un shell /bin/sh. Vous pouvez définir un shell différent comme ceci : RUN /bin/bash -c 'mkdir /user/local/foo.
  • COPY copie des fichiers locaux dans le conteneur.
  • CMD définit les commandes qui s'exécuteront sur l'image au démarrage. Contrairement à RUN, cela ne crée pas une nouvelle couche pour l'image, mais exécute simplement la commande. Il ne peut y avoir qu'une seule commande CMD par Dockerfile/Image. Si vous avez besoin d'exécuter plusieurs commandes, la meilleure façon de le faire est de faire en sorte que CMD exécute un script. CMD exige que vous lui disiez où exécuter la commande, contrairement à RUN. Donc, les exemples de commandes CMD seraient :
 CMD ["python", "./app.py"]
 CMD ["/bin/bash", "echo", "Hello World"]
  • EXPOSE crée un indice pour les utilisateurs d'une image indiquant les ports qui fournissent des services. Il est inclus dans les informations qui peuvent être récupérées via $ docker inspect <id-conteneur>.

Note

La commande EXPOSE ne rend pas réellement les ports accessibles à l'hôte ! Pour cela, vous devez publier les ports en utilisant le drapeau -p lors de l'utilisation de $ docker run.

Note

Si vous souhaitez en savoir plus sur les Dockerfiles, consultez les meilleures pratiques pour l'écriture de Dockerfiles.

(source : https://github.com/docker/labs/tree/master/beginner)

Docker & docker-compose