Befehl in mehreren Docker-Containern ausführen
Möchte man bei vielen aktiven Containern bestimmte Inhalte abfragen, kann dies mit einer Schleife elegant als Einzeiler durchgeführt werden. Zuerst ist der Containername zu ermitteln und dann kann via docker exec
der eigentliche Befehl im Container ausgeführt werden.
Beispiel: Ermittlung der java Version in allen Containern (zur besseren Lesbarkeit auf mehrere Zeilen umgebrochen)
for i in $(sudo docker ps --format '{{.Names}}') ; do
echo "------" ;
echo $i ;
sudo docker exec $i bash -c "java -version" ;
done
——
important01.service
openjdk version “1.8.0_171”
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
——
container02.service
openjdk version “1.8.0_171”
… usw.