• 8 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 12/12/2019

Lancez votre premier conteneur en local

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans cette deuxième partie, je vous propose de prendre en main Docker. Nous allons commencer par découvrir l'interface en ligne de commande, qui nous permet de discuter avec le daemon Docker installé précédemment.

Le Docker Hub

Avant de démarrer votre premier conteneur Docker, rappelez-vous quand vous avez créé votre compte sur le Docker Hub pour télécharger votre version de Docker. Celui-ci est aussi la registry officielle de Docker.

Une registry ?

Démarrez votre premier conteneur Docker

Pour démarrer votre premier conteneur, vous devez utiliser la commande docker run hello-world

➜ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

Quand vous utilisez cette commande, le daemon Docker va chercher si l'image hello-world est disponible en local. Dans le cas contraire, il va la récupérer sur la registry Docker officielle.

Démarrez un serveur Nginx avec un conteneur Docker

Vous savez maintenant lancer un conteneur, et vous avez compris les actions effectuées par le daemon Docker lors de l'utilisation de la commande docker run.

Maintenant, nous allons aller plus loin avec celui-ci. Nous allons lancer un conteneur qui démarre un serveur Nginx en utilisant deux options : docker run -d -p 8080:80 nginx.

Dans cette commande, nous avons utilisé deux options :

  • -d pour détacher le conteneur du processus principal de la console. Il vous permet de continuer à utiliser la console pendant que votre conteneur tourne sur un autre processus ;

  • -p pour définir l'utilisation de ports. Dans notre cas, nous lui avons demandé de transférer le trafic du port 8080 vers le port 80 du conteneur. Ainsi, en vous rendant sur l'adresse  http://127.0.0.1:8080, vous aurez la page par défaut de Nginx.

Vous pourriez aussi avoir besoin de "rentrer" dans votre conteneur Docker pour pouvoir y effectuer des actions. Pour cela, vous devez utiliser la commande docker exec -ti ID_RETOURNÉ_LORS_DU_DOCKER_RUN bash. Dans cette commande, l'argument -ti permet d'avoir un shell bash pleinement opérationnel. Une fois que vous êtes dans votre conteneur, vous pouvez vous rendre, via la commande cd /usr/share/nginx/html, dans le répertoire où se trouve le fichier index.html, pour modifier son contenu et voir le résultat en direct à l'adresse http://127.0.0.1:8080.

Arrêtez votre conteneur Docker

Vous avez créé un conteneur avec l'option --detach, vous aurez donc sûrement besoin de l'arrêter ! Pour cela, faites appel à la commande docker stop ID_RETOURNÉ_LORS_DU_DOCKER_RUN.

Maintenant que votre conteneur Docker a été arrêté, vous pouvez le supprimer avec la commande docker rm ID_RETOURNÉ_LORS_DU_DOCKER_RUN. Celle-ci va détruire le conteneur et son contenu ; cependant, vous pouvez toujours recréer votre conteneur avec la commande docker run vue plus haut.

Récupérez une image du Docker Hub

Vous pouvez aussi avoir besoin de récupérer des images sur le Docker Hub sans pour autant lancer de conteneur. Pour cela, vous avez besoin de lancer la commande suivante :

➜ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Image is up to date for hello-world:latest

En lançant cette commande, vous téléchargez une image directement depuis le Docker Hub, et vous la stockez en local sur votre ordinateur.

Affichez l'ensemble des conteneurs existants

Quand vous créez des conteneurs avec l’argument --detach, vous pouvez avoir besoin de savoir si les conteneurs sont toujours actifs ; pour cela, vous devez utiliser la commande docker ps.

➜ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2da0910758b nginx "nginx -g 'daemon of…" 5 seconds ago Up 4 seconds 0.0.0.0:8080->80/tcp awesome_vaughan

Vous pouvez aussi voir l'ensemble des images présentes en local sur votre ordinateur, avec la commande docker images -a.

➜ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 881bd08c0b08 3 weeks ago 109MB

Comment nettoyer mon système

Après avoir fait de nombreux tests sur votre ordinateur, vous pouvez avoir besoin de faire un peu de ménage. Pour cela, vous pouvez supprimer l'ensemble des ressources manuelles dans Docker.

Ou vous pouvez laisser faire Docker pour qu'il fasse lui-même le ménage. Voici la commande que vous devez utiliser pour faire le ménage :docker system prune

➜ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N] y
Deleted Containers:
941b8955b4fd8988fefe2aa91c7eb501f2d4f8c56bf4718fea8ed50904104745
a96e73c623fb6530ab41db6a82aca7017d54a99590f0b45eb6bf934ef8e4d3ed

Deleted Images:
deleted: sha256:797a90d1aff81492851a11445989155ace5f87a05379a0fd7342da4c4516663e
deleted: sha256:c5c8911bd17751bd631ad7ed00203ba2dcb79a64316e14ea95a9edeb735ca3ea

Total reclaimed space: 21.08MB

Celle-ci va supprimer les données suivantes :

  • l'ensemble des conteneurs Docker qui ne sont pas en status running ;

  • l'ensemble des réseaux créés par Docker qui ne sont pas utilisés par au moins un conteneur ;

  • l'ensemble des images Docker non utilisées ;

  • l'ensemble des caches utilisés pour la création d'images Docker.

En résumé

Vous savez maintenant télécharger, démarrer et arrêter des conteneurs ; vous êtes aussi capable de définir une registry Docker et pourquoi on l'utilise.

Pour rappel, voici les points importants du chapitre :

  • démarrage d'un conteneur avec un docker run ;

  • utilisation des arguments -d et -p lors du démarrage d'un conteneur ;

  • récupération d'une image depuis une registry avec la commande docker pull ;

  • nettoyage du système avec docker system prune

Dans le prochain chapitre, vous allez créer votre première image Docker grâce au Dockerfile !

Exemple de certificat de réussite
Exemple de certificat de réussite