Docker : quelques lignes de commandes

J’ai découvert Docker dans le cadre de mon CDI et j’ai trouvé cela fort puissant et pratique.

Puisque nous avons accès à une formation sur Docker, je me suis donc formé. Cette article a donc pour vocation de lister diverses commandes que j’ai jugé utiles et que je pourrai donc avoir à m’en servir de nouveau.

Pour les personnes qui sont sous Windows, je vous conseille vivement d’utiliser Powershell plutôt que CMD. Certaines fonctions marcheront tel que l’utilisation des $ qui permet de pouvoir exploiter le résultat d’une commande dans une autre commande (d’exécuter en quelque sort des commandes imbriquées).

Création de containers : docker container run

docker container run alpine echo hello
docker container run --name test_name alpine echo hello

« Alpine » est le nom de l’image à utiliser. Si cette dernière n’est pas présente, alors ça va la télécharger automatiquement.

« echo hello » est la commande à exécuter dans le nouveau container.

« –name » permet de nommer un container. Ce nom pourra être utilisé à la place de son identifiant.

Création de containers : mode interactif

 docker container run -ti ubuntu

« -ti » est ce qui doit être ajouté juste après le « run » afin d’avoir accès à un shell interactif qui nous permettra d’exécuter des commandes directement dans le docker.

Création de containers en background

Par défaut, ils sont exécutés en foreground. Il faut donc ajouter une option supplémentaire (-d) pour que le docker puisse tourner en tâche de fond.

Sera retourné l’ID du docker si on souhaite interagir avec.

  docker container run -d nginx

Dans cet exemple, un docker est exécuté avec le service nginx.

Création de containers avec mapping de port

Pour pouvoir faire correspondre un port local (8080 dans l’exemple ci-dessous) avec un port du docker (80 dans l’exemple ci-dessous).

docker container run -d -p 8080:80 nginx

On peut alors ouvrir un page internet en local puisque le docker tourne toujours avec le port qu’on a choisi.

Lister les containers (ou les images) existants

docker container ls -a
docker image ls

Par défaut, est affiché uniquement les containers qui tournent encore. Pour afficher afficher aussi ceux qui sont arrêtés, il faut ajouter « -a ».

Prendre la main sur un container actif

La commande ci-dessous va permettre d’exécuter un shell en mode intéractif afin de prendre le contrôle du container, qui, par exemple, tourne en tâche de fond.

docker container exec -ti CONTAINER_ID sh

« CONTAINER_ID » doit être remplacé par l’identifiant du container.

Arrêter un container

Une simple commande en spécifiant l’ID du container permet d’arrêter (pas de supprimer) le container en question.

docker container stop CONTAINER_ID

Pour la suppression (d’un container ou d’une image), il faut utiliser une autre commande.

docker container rm CONTAINER_ID
docker image rm IMAGE_ID

Démarrer un container

Si le container n’a pas été démarré en tâche de fond, normalement il se terminera automatiquement une fois la commande exécutée. Il ne sera donc pas possible d’y prendre la main avant de l’avoir, au préalable, redémarré. Pour cela….

docker container start CONTAINER_ID

Source de l’image principale : https://www.flickr.com/photos/134416355@N07/31775353301


Mes articles sur le développement d'applications vous rendent curieux et vous aimeriez vous aussi vous lancer ? Avant d'acheter une nouvelle licence qui coûte chère, je vous propose avant tout de vous documenter.

Je vous suggère donc les livres suivants :

Le premier vous apprend les bases du développement Windev et les autres vous proposent des cas concrets afin de vous montrer comment développer en Windev. Tout ce qu'on y apprend est valable pour Windev, Windev Mobile mais aussi Webdev car c'est le même langage.

N'hésitez pas à donner votre avis