Construire une image dans Docker
Le Dockerfile
Avant de poursuivre, rappelons que pour construire une image, il faut dans un premier temps préparer un fichier Dockerfile. Et cela tombe bien, car dans la leçon précédente, nous en avons créé un.
Construire une image
Plaçons-nous dans le dossier que nous avons précédemment créé avec le Dockerfile à l'intérieur.
Pour vérifier que nous sommes bien au bon endroit, tapez la commande qui permet de lister les fichiers dans le dossier courant.
ls
On devrait normalement tomber sur ce résultat.
Dockerfile
Pour construire une image à partir d'un Dockerfile, utilisé la commande suivante.
docker build -t ubuntu_nodejs .
Expliquons la signification de cette commande.
Le mot-clé build
indique qu'il est question de construire une image. L'option -t
nous donne la possibilité de donner un nom à notre image pour qu'elle soit facilement identifiable. Nous avons choisi ubuntu_nodejs
, mais il est possible d'utiliser un autre nom au choix. Le .
juste après correspond au dossier courant car il contient le Dockerfile. Si notre Dockerfile est ailleurs, adaptez la commande.
À présent vérifions que l'image existe réellement.
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu_nodejs latest f64149a721f0 2 minutes ago 180MB
C'est tout bon 😄.
Créer un conteneur à partir de notre image
Pour vérifier que notre image possède bien toutes les choses décrites dans le Dockerfile, nous allons créer un nouveau conteneur.
docker run -it --rm ubuntu_nodejs
Dans une autre fenêtre de votre terminal, utilisez la commande suivante pour vérifier que le conteneur est bien en route.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3e49efb757a ubuntu_nodejs "bash" 4 seconds ago Up 3 seconds jovial_shaw
Normalement notre conteneur devrait avoir Node.js.
Vérifions cela !
Dans le conteneur tapez la commande qui suit.
node -v
Si vous tombez sur le numéro de version de Node.js alors tout vas bien, les choses ont bien fonctionné. Pour ma part le terminal m'affiche la version suivante (je vous l'indique seulement pour information, mais ce numéro est sans importance dans notre cas).
v8.10.0