Четыре скрипта, к-е облегчат вашу навигацию между докерами

1) getdockerdir.sh # показывает рабочую директорию докер-контейнера по имени сервиса, для локальной отладки в любимом редакторе
#!/bin/sh
dockerid=$(docker ps -f name=$1 | awk 'NR==2{print $1}')
echo "рабочая директория сервиса $1: " $(docker inspect $dockerid | grep merg)


2) getdockerid.sh # показывает id докер-контейнера по имени сервиса — самая востребованная операция
#!/bin/sh
dockerid=$(docker ps -f name=$1 | awk 'NR==2{print $1}')
echo $dockerid

3) dockerbash.sh входим в консоль докер-контейнера по имени сервиса (очень часто требуется)
#!/bin/sh
docker exec -it $(getdockerid $1) sh

Линкуем в bin наши скрипты (или но аналогии с виндой помещаем в path запускаемые программы для их вызова с любой директории (предполагается что директория расположения скриптов /work/docker)):
ln -s /work/docker/getdockerdir.sh /usr/local/bin/getdockerdir
ln -s /work/docker/getdockerid.sh /usr/local/bin/getdockerid
ln -s /work/docker/dockerbash.sh /usr/local/bin/dockerbash

А теперь пользуемся и радуемся справедливости))
getdockerdir smetacloud
getdockerid smetacloud
dockerbash smetacloud
dockerbash newhelpdesk

4) Следующий скрипт выводит в табличке имена сервисов с id контейнера и рабочей директорией для каждого (при этом прочерк говорит о том, что контейнер находится на другой ноде)
#!/bin/sh
currentnode=$(docker node ps | awk 'NR==2{print $4}');
dservices=$(docker service ls | awk 'NR>1{print $2}');
echo "№ service_name id_container dir_container" > /tmp/ds.txt
for item in $dservices
do
  count=$((count+1))
  existdocker=$(getdockerid $item)
  if [[ ! -z $existdocker ]]; then
     dockerid=$existdocker
     dir=$(docker inspect $(getdockerid $item) | grep "MergedDir" | awk -F'[/|/]' '{print $6}')
  else
     dockerid="-"
     dir="-"
  fi
  echo -e $count "\t" $item "\t\t" $dockerid "\t\t" $dir $nodename >> /tmp/ds.txt
done
cat /tmp/ds.txt | column -t

Линкуем чудо-скрипт:
ln -s /work/docker/dservices.sh /usr/local/bin/dservices

0 комментариев

Оставить комментарий

Имя:
E-Mail:
Введите код с картинки: