Formations/Fondations Docker, Compose et Swarm/2.3 Créer notre premier container
Leçon 10m

2.3 Créer notre premier container

Apprendre à créer et lancer des conteneurs Docker efficacement.

Bien maintenant que l'on a vue que nos container run ou pas... on vas lancer notre premier container de manière efficace et propre. POur ce faire Docker fournie une image de base pour vérifier que notre installation vas bien et fonctionne parfaitement elle est nommée "hello-world".

Grace a la commande

docker run hello-world
Pas de panic docker s automatiquement télécharger l'image depuis le registre si besoin et de manière transparente ou presque.

Une fois la commande lancer vous devriez avoir ceci sur le Terminal :

****  **~** 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.

    (arm64v8)

 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/
On vois qu'il nous dit que tout a l'air correct et qu'on peut lancer ubuntu si on est ambitieux avec des commandes un peut spécial.

Un vrai cas d'usage : lancer un serveur Web

Le hello-world, c'est mignon maintenant on va lancer un serveur web Nginx fonctionnel en une seule ligne de commande.

Tapez ceci (attention aux espaces) :

  ~ docker run -d -p 8080:80 --name mon_premier_site nginx

Laissez Docker télécharger l'image si elle n'est pas sur votre repository local.

 **~** docker run -d -p 8080:80 --name mon_premier_site nginx 

Unable to find image 'nginx:latest' locally

latest: Pulling from library/nginx

59f54fbcd984: Already exists 

54c3b3bebc0a: Pull complete 

9b1a2f3b8553: Pull complete 

627a5a63361a: Pull complete 

4cca0d328dc5: Pull complete 

94f27359a4c8: Pull complete 

9f270a0f328f: Pull complete 

Digest: sha256:5a88c9c45479443d7be2eadc894b4ed0a9801bae03d97a5760ae13b5c2005942

Status: Downloaded newer image for nginx:latest

7fb193e996196a74e59c4e818a5bf4f1e0183b8eabac402ae9732a07a25b8dc4

Une fois qu'il vous rend la main avec une longue suite de lettres et de chiffres (l'ID complet du conteneur), ouvrez votre navigateur et tapez : http://localhost:8080.

**Et voila votre page NGINX **

Décryptage de la commande magique

Pourquoi a-t-on rajouté toutes ces lettres bizarres ? Voici les 3 options (flags) que vous allez utiliser en permanence :

  • -d (Detach) : Demande à Docker de lancer le conteneur en arrière-plan. Sans ça, votre terminal serait bloqué sur les logs de Nginx, et si vous fermiez le terminal, le site s'éteindrait.
  • -p 8080:80 (Publish) : On en a parlé tout à l'heure ! On branche le port 8080 de notre ordinateur vers le port 80 du conteneur (le port par défaut d'un serveur web).
  • --name mon_premier_site : Par défaut, Docker donne des noms générés aléatoirement assez drôles (genre sleepy_einstein ou crazy_hopper). C'est marrant 5 minutes, mais pour s'y retrouver, c'est l'enfer. Avec --name, on lui donne un nom clair pour le manipuler plus tard.

Félicitations

Félicitations, vous venez de déployer votre premier véritable service isolé !