Un premier test, sans risque

Docker propose une image officielle nommée hello-world, conçue uniquement pour vérifier qu'une installation fonctionne. Elle ne fait rien d'autre qu'afficher un message de confirmation, puis s'arrête. C'est le test parfait pour une première commande.

Trois choses se sont passées : Docker n'a pas trouvé l'image hello-world sur votre ordinateur, il l'a donc téléchargée depuis Docker Hub (une bibliothèque publique d'images officielles), puis il a créé et démarré un conteneur à partir de cette image, qui a affiché son message avant de s'arrêter tout seul.

Faire tourner quelque chose qui reste actif

hello-world s'arrête immédiatement après son message : ce n'est pas représentatif d'une vraie application, comme un site web, qui doit rester active pour répondre aux visiteurs. Testons maintenant un vrai serveur web, avec l'image officielle nginx. Voici ce que vous allez obtenir : un serveur web accessible depuis votre navigateur, à l'adresse http://localhost:8080.

La sortie affichée est l'identifiant du conteneur créé, une longue suite de caractères. Décomposons cette commande, mot par mot :

ÉlémentRôle
docker runCrée et démarre un nouveau conteneur à partir d'une image.
-dPour « detach » : lance le conteneur en arrière-plan, et rend la main immédiatement dans le terminal.
-p 8080:80Relie le port 8080 de votre ordinateur au port 80 à l'intérieur du conteneur. Le guide 16 y reviendra en détail.
nginxLe nom de l'image à utiliser pour créer le conteneur.

Ouvrez maintenant un navigateur à l'adresse http://localhost:8080. Vous devriez voir la page d'accueil par défaut de nginx, avec le titre « Welcome to nginx! ». C'est la preuve concrète qu'un vrai serveur web tourne, isolé, à l'intérieur d'un conteneur sur votre ordinateur.

localhost, c'est votre propre ordinateur

localhost est une adresse spéciale qui désigne toujours l'ordinateur sur lequel elle est tapée, jamais un ordinateur distant. Quand votre navigateur ouvre http://localhost:8080, il contacte votre propre machine, sur le port 8080 que la commande précédente a relié au conteneur nginx.

Vérifier que le conteneur tourne bien

La commande docker ps (pour « process status ») liste les conteneurs actuellement en cours d'exécution :

Chaque colonne donne une information utile : l'identifiant du conteneur, l'image dont il provient, la commande exécutée à l'intérieur, les ports reliés, et un nom généré automatiquement (ici jolly_hopper) puisque vous n'en avez pas choisi vous-même. Le prochain guide détaille cette commande et plusieurs autres tout aussi essentielles.

Vérifiez que vous avez compris

Vous relancez docker run hello-world une seconde fois, juste après la première. Docker va-t-il retélécharger l'image depuis Docker Hub ?

Non. Une fois téléchargée, une image reste stockée sur votre ordinateur. Docker vérifie d'abord si l'image demandée existe déjà localement, et ne la télécharge que si ce n'est pas le cas. La seconde exécution sera donc immédiate, sans les lignes de téléchargement vues la première fois.