扱っているdocker serviceの数が3桁とかになってくると、このnodeに依存しているserviceはどれだっけ? というような事を把握するのが大変になってきます。サービスの現在状態がローカルに存在してれば適当にgrep
して探せるのですけど、docker service inspect
して回らないといけないので大変です。
ということで、全てのserviceのinspect --pretty
を列挙する以下のようなスクリプトを作りました。--pretty
のほうが行志向なのでgrep
との相性が良いです。
ds_all.sh [-q]
#!/bin/sh
NAMES=`docker service ls | tail -n +2 | awk '{print $2}' | sort`
n=0
N=`echo "$NAMES" | wc -l | bc`
for I in $NAMES; do
n=`expr $n + 1`
if [ "$1" != "-q" ]; then
echo "** $I ** $n/$N" 1>&2
fi
docker service inspect --pretty $I | awk "{print \"$I: \"\$0}"
done
ds_all.sh | grep hostname
とかやると特定のhostにConstraintsが設定されているserviceが分かります。
ちなみに、現時点で dockerのservice formatterにtypoがあり、ConstraintsであるべきところがContraintsになっているので
grep Constraints
してもマッチしなくて困りました。