Docker exec un jour, docker exec toujours !
S’il y a bien une astuce Docker à retenir quand on l’utilise sur son environnement de développement, c’est bien docker exec. Cette commande permet d’exécuter une commande dans un conteneur existant. Comme démontré avec des exemples concrets précédemment, cela permet de créer une collection Solr ou bien de faire un dump MySQL. Et si un nouveau conteneur autonome avait été créé lors de la création d’un cluster Cassandra pour créer une table, il aurait été possible d’utiliser le conteneur d’un des nœuds du cluster comme ci-dessous :
$ docker ps --format "table {{.ID}}\t {{.Image}}\t {{.Names}}\t {{.Status}}" CONTAINER ID IMAGE NAMES STATUS 8f47b9f3e0a0 cassandra myproject_cassandra2_1 Up 56 seconds 154d3bf48979 cassandra myproject_cassandra1_1 Up 56 seconds 738bed1a445a cassandra myproject_cassandra0_1 Up 56 seconds $ docker exec -ti 738bed1a445a cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4] Use HELP for help. cqlsh>
Pourquoi cette commande est-elle si pratique au jour le jour ? Car elle permet « d’entrer dans un conteneur ». Comment ? En exécutant un bash !
$ docker exec -ti 738bed1a445a bash root@738bed1a445a:/# ps -eaf UID PID PPID C STIME TTY TIME CMD root 1 0 4 23:38 ? 00:00:12 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.3.0.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1001M -Xmx1001M -Xmn100M -XX:+HeapDumpOnOutOf root 187 0 0 23:42 ? 00:00:00 bash root 193 187 0 23:42 ? 00:00:00 ps -eaf
Avec cette astuce, il est bien plus facile d’analyser un conteneur qui ne fonctionne pas correctement en vérifiant les fichiers de logs, les fichiers de configuration ou bien le contenu des répertoires montés via des volumes Docker.
Pour rappel, il est recommandé de ne faire tourner qu’un seul programme dans un conteneur. Cet usage n’est donc pas recommandé pour de la production mais se révèle très pratique pour les développeurs au quotidien.
https://blog.lecacheur.com/2015/12/31/docker-exec-un-jour-docker-exec-toujours/https://blog.lecacheur.com/wp-content/uploads/2014/10/docker.pnghttps://blog.lecacheur.com/wp-content/uploads/2014/10/docker-150x150.pngDéveloppementLinuxastuce,dockerS'il y a bien une astuce Docker à retenir quand on l'utilise sur son environnement de développement, c'est bien docker exec. Cette commande permet d'exécuter une commande dans un conteneur existant. Comme démontré avec des exemples concrets précédemment, cela permet de créer une collection Solr ou bien de faire...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Laisser un commentaire