Ce tutoriel vise à vous montrer comment travailler avec la commande docker exec pour exécuter des commandes dans des conteneurs en cours d'exécution.
Utilisation de base
Travailler avec Docker Exec est très simple. Nous commençons par appeler la commande docker exec suivie du nom ou de l'ID du conteneur et de la commande à exécuter.
Par exemple, pour exécuter la commande echo dans le conteneur Debian, nous utilisons la commande comme:
$ docker exec debian echo bonjour
La commande engendre un shell du conteneur Debian et exécute la commande echo. Un exemple de sortie apparaît ci-dessous:
Pour obtenir le nom ou un ID des conteneurs en cours d'exécution, utilisez la commande:
$ docker ps
Options de docker
La commande docker exec prend en charge diverses options pour modifier la fonctionnalité des commandes. Il prend en charge les fonctions suivantes.
Docker exec sh
Dans la plupart des cas, nous avons besoin d'une instance de shell dans le conteneur pour exécuter les commandes brutes. Pour ce faire, nous utilisons la commande docker exec.
$ docker exec debian -i -t / bin / bash
La commande ci-dessus lance un shell interactif. Il est bon de s'assurer que Bash exécutable existe avant la commande en cours d'exécution.
Si Bash ou un shell que vous souhaitez utiliser n'est pas disponible, utilisez SH dans la commande ci-dessous:
$ docker exec -it / bin / sh
Comme vous pouvez le voir, vous avez une session de shell interactive où vous pouvez exécuter des commandes.
Exec comme racine
Pour exécuter la commande en tant que racine, utilisez l'option -u. L'option nécessite un nom d'utilisateur ou un UID de l'utilisateur. Par exemple:
$ docker exec -u 0 debian whoami
$ root
Dans la commande ci-dessus, nous utilisons l'UID de l'utilisateur racine pour exécuter la commande whoami comme racine.
Pour utiliser le nom d'utilisateur au lieu de l'utilisateur UID, utilisez la commande:
$ docker exec -u root debian whoami
$ root
La commande ci-dessus peut vous aider lorsque vous souhaitez dépanner ou effectuer des tâches qui nécessitent des privilèges élevés.
Conclusion
C'est tout pour la commande docker exec.
Nous avons discuté de l'utilisation de Docker Exec pour exécuter les commandes dans vos conteneurs en cours d'exécution et de frayer une session Shell. Enfin, nous avons couvert comment exécuter les commandes comme racine en utilisant le nom d'utilisateur et l'UID.