Lancer des containers
Un avantage de Docker est qu'il existe un énorme bibliothÚque d'Images déjà construits pour notre utilisation, qui s'appelle Docker Hub.
Attention : nous allons lancer Docker directement sur votre systĂšme hĂŽte, et pas dans VSCode !
D'abord, lancez Docker Desktop si vous ĂȘtes sur Windows ou Mac.
Sur Windows : vous ouvrez PowerShell
Sur Linux et Mac : vous ouvrez un Terminal
Nous allons lancer notre premier Container, qui s'appelle Hello World
docker run hello-worldVous allez voir le suivant, par exemple :
kevin@Aardvark-II ~ % docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:94ebc7edf3401f299cd3376a1669bc0a49aef92d6d2669005f9bc5ef028dc333
Status: Downloaded newer image for hello-world:latest
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/D'abord, l'image n'existe pas en local, donc Docker le télécharge ("pull"). Une fois l'image dans le cache local de notre machine, un nouveau Container est crée sur la base de cet Image. Dans l'image il n'y qu'une seule commande qui émet "Hello from Docker".
On peut tourner n'importe quelle image qui existe sur Docker Hub:
Essayez de voir la version de Ubuntu en tapant, dans le container :
Taper exit pour quitter l'interprÚte. Le processus du Container, bash va quitter, et donc le Container est détruit.
Essayez avec une autre image :
Ici, on instancie l'image officielle de NodeJS avec la version 18 de node, et on lance l'interprÚte node. Au réplique, on peut taper du javascript !
Essayez avec Python :
Nous n'avons pas installé python sur notre ordinateur, mais on a pu lancer l'interprÚte avec Docker.
Moniteur d'activités docker
Docker nous fourni beaucoup de fonctionnalités via sa commande docker.
Par exemple, je peux lister tous les processus gérés par Docker avec :
Une liste de processus docker est émis, qui indique :
Le ID unique de chaque Container
L'image sur laquelle le Container est crée
La commande qui tourne
...
Les ports ouverts par le Container
Le nom du Container (s'il en a un)
Surveiller les journaux d'un Container
Ayant le ID d'un container qui tourne, je peux consulter les journaux émis :
J'ai ajouté 2 paramÚtres facultatifs mais utiles :
--followva bloquer le terminal, et afficher en temps réel les nouevaux événements qui arrivent--tail 5va commencer uniquement à la fin des logs (sinon on va devoir parcourir le tout avant d'arriver à la fin)
ArrĂȘter un Container
Pour arrĂȘte un container :
Vous allez remarquer que le container soit enlevĂ©, si vous faĂźte docker ps. Cette commande arrĂȘte le container, mais elle est juste mis en suspense.
Lister les Containers
On peut voir les containers sur notre machine avec :
Avec cette commande on voit tous les containers, et leur statuts, y compris ceux qui sont arrĂȘtĂ©s.
Supprimer les Containers
On peut donc supprimer définitivement les Containers qui sont déjà quittés, afin de libérer de la place sur notre ordinateur :
Lister / Supprimer les Images
De la mĂȘme façon on peut lister et supprimer les Images :
Attention, on ne peut supprimer une image seulement s'il n'y a plus de Container (mĂȘme qui a dĂ©jĂ arrĂȘtĂ©) Ă la base de cette image.
Nettoyer Docker
Vous avez peut-ĂȘtre constatĂ© que Docker pourrait vite consommer beaucoup de place sur nos disques, entre toutes les Images et tous les containers.
On pourrait faire le menage en faisant :
On a pas encore parlé de Volumes, mais on peut aussi supprimer les volumes non-utilisés avec :
Mis Ă jour