CodeGym /Cours /Docker SELF /Connexion à un conteneur en cours d'exécution

Connexion à un conteneur en cours d'exécution

Docker SELF
Niveau 11 , Leçon 4
Disponible

5.1 Bases de la commande docker exec

La commande docker exec — un outil pour interagir avec les conteneurs en cours d'exécution. Elle permet d'exécuter des commandes et d'ouvrir des sessions interactives à l'intérieur d'un conteneur. C'est utile pour les tâches administratives, le débogage et la surveillance. Dans cette conférence, on examine en détail comment utiliser la commande docker exec, quels paramètres sont disponibles et on donne des exemples de son application pratique.

La commande docker exec est utilisée pour exécuter des commandes dans un conteneur en cours d'exécution. Grâce à elle, on peut entrer dans un conteneur et interagir avec lui, comme si on travaillait directement avec un serveur.

Syntaxe


docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Où :

  • CONTAINER: le nom ou l'identifiant du conteneur auquel vous voulez accéder.
  • COMMAND: la commande que vous voulez exécuter dans le conteneur.
  • ARG...: les arguments pour la commande.

Exemple d'utilisation de base

Cet exemple exécutera la commande ls /app à l'intérieur du conteneur my_container, ce qui permettra de voir le contenu du répertoire /app dans le conteneur.

Terminal


docker exec my_container ls /app

5.2 Paramètres pour la commande docker exec

La commande docker exec prend en charge plusieurs options qui permettent de configurer le comportement des commandes exécutées à l'intérieur du conteneur.

1. Ouverture d'une session interactive

Pour démarrer une session interactive, utilise la combinaison des options -i (interactive) et -t (pseudo-TTY).

Terminal


docker exec -it my_container /bin/bash 

Dans cet exemple, un terminal interactif Bash sera ouvert à l'intérieur du conteneur my_container. Tu pourras exécuter des commandes en temps réel.

2. Exécution de commandes en mode détaché

Si tu dois exécuter une commande à l'intérieur d'un conteneur et ne pas attendre qu'elle se termine, tu peux utiliser l'option -d (mode détaché).

Terminal


docker exec -d my_container touch /app/newfile.txt

Dans cet exemple, la commande crée un fichier vide newfile.txt dans le répertoire /app du conteneur my_container. Le contrôle du terminal revient immédiatement après l'exécution de la commande, sans attendre sa fin.

3. Transmission d'un environnement personnalisé

Tu peux passer des variables d'environnement au conteneur à l'aide de l'option -e.

Terminal

docker exec -e MY_VAR=value my_container env

Cet exemple transmet la variable d'environnement MY_VAR au conteneur et lance la commande env pour afficher toutes les variables d'environnement à l'intérieur du conteneur.

5.3 Exemples d'utilisation

Exemple 1 : Affichage des processus en cours dans le conteneur

Cet exemple va exécuter la commande ps aux dans le conteneur my_container et affichera la liste de tous les processus en cours d'exécution.

Terminal
docker exec my_container ps aux

Exemple 2 : Vérification de l'état d'un service dans le conteneur

Cet exemple va exécuter la commande service nginx status dans le conteneur my_container et affichera l'état du service nginx.

Terminal
docker exec my_container service nginx status

Exemple 3 : Installation d'un paquet dans le conteneur

Cet exemple mettra à jour la liste des paquets et installera l'éditeur vim dans le conteneur my_container.

Terminal
docker exec my_container apt-get update && apt-get install -y vim

5.4 Scénarios pratiques

1. Administration des containers

La commande docker exec permet aux admins de faire des tâches de maintenance directement dans les containers : modifier des fichiers de config, checker les logs ou changer les permissions des fichiers.

Terminal
docker exec -it my_container vim /etc/nginx/nginx.conf

2. Débogage des applications

Pendant le dev et les tests des applis, la commande docker exec aide les devs à checker l'état de l'appli, debugger et analyser les erreurs.

Terminal
docker exec -it my_container python /app/scripts/debug.py

3. Monitoring et diagnostic

Avec docker exec, on peut exécuter des commandes de diagnostic et suivre l'état du container : checker l'utilisation des ressources, les connexions réseau et d'autres métriques.

Terminal
docker exec my_container top

Cette commande va lancer l'outil top dans le container my_container et afficher l'utilisation actuelle des ressources.

5.5 Recommandations supplémentaires

1. Sécuriser l'accès

Lorsque tu utilises la commande docker exec, c'est super important de penser à la sécurité. Assure-toi que l'accès aux conteneurs est limité et que seuls les utilisateurs autorisés peuvent exécuter des commandes dans les conteneurs.

2. Automatisation des tâches

Tu peux automatiser des tâches répétitives en utilisant des scripts qui exploitent la commande docker exec. Ça te permet de créer des workflows complexes et de simplifier l'administration des conteneurs.

Terminal
#!/bin/bash
for container in $(docker ps -q); do
 docker exec $container uptime
done

Ce script exécutera la commande uptime sur tous les conteneurs en cours d'exécution et affichera leur durée de fonctionnement.

3. Logs et débogage

Des fois, une commande peut échouer. Dans ces cas, c'est utile de regarder les logs du conteneur pour trouver la cause du problème.

Terminal
docker logs my_container
1
Опрос
Création du premier conteneur,  11 уровень,  4 лекция
недоступен
Création du premier conteneur
Création du premier conteneur
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION