Работает он примерно так. Запускаем контейнер, внутри которого ничего нет, кроме nginx:
# docker run --name nginx -d -p 8080:80 nginx# docker exec -it nginx bash# ps axfbash: ps: command not foundПодключаем к нему network-multitool:
# docker run --rm -it \ --network=container:nginx \ --pid container:nginx \wbitt/network-multitool:alpine-extra bash# ps axf PID TTY STAT TIME COMMAND 47 pts/0 Ss 0:00 bash 60 pts/0 R+ 0:00 \_ ps axf 1 ? Ss 0:00 nginx: master process nginx -g daemon off; 29 ? S 0:00 nginx: worker process 31 ? S 0:00 nginx: worker process 30 ? S 0:00 nginx: worker process 32 ? S 0:00 nginx: worker processДальше всё остальное можно запускать: ping, dig, tcpdump и т.д.
Я тут выбрал самую жирную сборку alpine-extra, где максимальный набор инструментов, в том числе tshark, ApacheBench, mysql & postgresql client, git и т.д. Если всё это не надо, то используйте alpine-minimal. Описание сборок в репозитории.
Похожую функциональность имеет cdebug. У него принцип работы такой же, только он для удобства собран в бинарник. А подключается он к контейнерам точно так же.
Кстати, с помощью network-multitool можно и хост дебажить, если не хочется его засорять различными утилитами. Запускаем его в сети хоста и пользуемся:
# docker run --rm -it --network=host wbitt/network-multitool:alpine-extra bash# tcpdumpНа хост ничего ставить не надо. Полезная штука, берите на вооружение.
#docker #devops