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 commandeFROM
. 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 commandeFROM
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 formatnom_utilisateur/nom_image:version
.RUN
est utilisé pour construire l'image que vous créez. Pour chaque commandeRUN
, 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 instructionRUN
consiste à placer le texte complet de la commande shell aprèsRUN
(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 commandeCMD
par Dockerfile/Image. Si vous avez besoin d'exécuter plusieurs commandes, la meilleure façon de le faire est de faire en sorte queCMD
exécute un script.CMD
exige que vous lui disiez où exécuter la commande, contrairement àRUN
. Donc, les exemples de commandesCMD
seraient :
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)