Skip to content

Instantly share code, notes, and snippets.

@bhubr
Last active May 29, 2022 09:28
Show Gist options
  • Save bhubr/54517b624032e82eb5456c012bf95557 to your computer and use it in GitHub Desktop.
Save bhubr/54517b624032e82eb5456c012bf95557 to your computer and use it in GitHub Desktop.
Récap commandes Docker

Récap commandes Docker

Récupérer une image depuis le Docker Hub

On peut "pull" une image depuis le registre Docker, un peu comme on "pull" du code depuis GitHub :

docker pull hello-world

Démarrer un conteneur depuis une image existante

docker run hello-world

Si vous avez "pull" l'image auparavant, le conteneur peut être démarré immédiatement. Dans le cas contraire, docker la pull automatiquement, et démarre le conteneur une fois qu'il a terminé.

Lister les images disponibles localement

docker image ls

Exemple de sortie chez moi (après avoir déjà "pull" et créé plusieurs images) :

REPOSITORY                           TAG       IMAGE ID       CREATED        SIZE
benoithubert/react-docker-dev        latest    472d15020190   2 hours ago    582MB
benoithubert/node-mongo-docker-dev   latest    a3324104aa4e   2 hours ago    328MB
bhubr/node-os-display                latest    d4f5faa23693   18 hours ago   109MB
<none>                               <none>    6c2a3f962bae   18 hours ago   109MB
<none>                               <none>    0d135cc952fe   18 hours ago   109MB
<none>                               <none>    2c5c0738a088   18 hours ago   109MB
<none>                               <none>    776d1be7b08b   18 hours ago   109MB
docker/getting-started               latest    26d80cd96d69   6 weeks ago    28.5MB
hello-world                          latest    feb5d9fea6a5   3 months ago   13.3kB
kindest/node                         <none>    32b8b755dee8   8 months ago   1.12GB

Effacer une image

Il est important de faire le ménage de temps en temps, car en expérimentant avec les Dockerfile, on peut se retrouver avec beaucoup d'images "obsolètes" sur sa machine.

Par exemple, si je veux supprimer l'image de la liste précédente ayant l'id 6c2a3f962bae :

docker rmi 6c2a3f962bae

Il peut arriver que cette commande échoue : c'est le cas quand on cherche à supprimer une image qui est utilisée par un conteneur.

Lister les conteneurs

docker ps permet de lister les conteneurs. Par défaut, elle n'affiche que les conteneurs actifs.

docker ps -a permet de lister tous les conteneurs :

CONTAINER ID   IMAGE                                COMMAND                  CREATED        STATUS                      PORTS                      NAMES
72b35b29af68   benoithubert/node-mongo-docker-dev   "docker-entrypoint.s…"   3 hours ago    Up 3 hours                  0.0.0.0:5000->5000/tcp     laughing_lehmann
afc600f3cbce   bhubr/node-os-display                "docker-entrypoint.s…"   19 hours ago   Exited (255) 16 hours ago                              thirsty_hellman
0c68982bf851   6c2a3f962bae                         "docker-entrypoint.s…"   19 hours ago   Exited (137) 19 hours ago                              agitated_saha
709f5b05a125   6c2a3f962bae                         "docker-entrypoint.s…"   19 hours ago   Exited (137) 19 hours ago                              elastic_bassi
f5e8cc2d7978   0d135cc952fe                         "docker-entrypoint.s…"   19 hours ago   Exited (1) 19 hours ago                                eager_hypatia
a17cdf2a1af3   2c5c0738a088                         "docker-entrypoint.s…"   19 hours ago   Exited (0) 19 hours ago                                admiring_easley
915356b0975a   776d1be7b08b                         "docker-entrypoint.s…"   19 hours ago   Exited (1) 19 hours ago                                pensive_archimedes
f9647d944f51   kindest/node:v1.21.1                 "/usr/local/bin/entr…"   5 weeks ago    Up 16 hours                 127.0.0.1:1056->6443/tcp   kind-control-plane
804dfdd87865   hello-world                          "/hello"                 6 weeks ago    Exited (0) 6 weeks ago                                 loving_moser
f1e963a5d238   docker/getting-started               "/docker-entrypoint.…"   6 weeks ago    Exited (255) 5 weeks ago    0.0.0.0:80->80/tcp         sweet_cray

La colonne STATUS indique l'état du conteneur. Si je n'ai plus besoin des conteneurs arrêtés (statut Exited), je peux les supprimer avec docker rm suivi d'un ou plusieurs ids de conteneurs. Par ex. je peux supprimer les deux conteneurs les plus anciens de la liste précédente comme ceci (on n'est pas obligé de mettre l'id en entier, mais juste une sous-chaîne) :

docker rm f1e 804

Voir les logs d'un conteneur

Pour voir la sortie terminal d'un conteneur, utiliser docker logs suivi de l'id ou du "nickname" (dernière colonne de docker ps) :

docker logs 72b

OU

docker logs laughing_lehmann

Exécuter une commande dans un conteneur

Particulièrement, si on veut se connecter à un conteneur et y exécuter des commandes shell.

docker exec -it 72b ash

-it permet d'executer la commande en mode interactif. ash est ici le shell integre a l'image Linux Alpine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment