Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
При работе с Docker контейнерами часто хочется зайти туда и посмотреть, что происходит. Но не всегда это возможно. В некоторых контейнерах нет вообще ничего - ни оболочки, ни утилит для диагностики. Для решения этой задачи создана программа cdebug. С её помощью можно подцепиться к контейнеру и выполнить диагностику. Например, запустить там ps axf и посмотреть, что и с какими параметрами запущено. Либо любую другую утилиту - ls, top, awk и т.д. Для работы с cdebug достаточно скачать один бинарник, написанный на GO. Идём в релизы и скачиваем для Linux архив cdebug_linux_amd64.tar.gz. Далее покажу на примере контейнера nginx. # docker run --name nginx -d -p 8080:80 nginx # docker exec -it nginx bash # ps axf bash: ps: command not found В образе нет ps. Подключаемся через cdebug: # cdebug exec -it nginx # ps axf PID  USER   TIME COMMAND   1 root   0:00 nginx: master process nginx -g daemon off;   28 nginx   0:00 nginx: worker process   29 nginx   0:00 nginx: worker process   30 nginx   0:00 nginx: worker process   31 nginx   0:00 nginx: worker process   39 root   0:00 sh /.cdebug-entrypoint.sh   47 root   0:00 sh   48 root   0:00 ps axf Посмотрели список процессов. При этом исходный контейнер не перезапускается, к нему не подключаются никакие volumes, корневая файловая система cdebug та же самая, что и у контейнера. Работает cdebug на базе busybox. Кроме подключения к контейнеру, cdebug может на ходу опубликовать порты контейнера, которые не были опубликованы при запуске. Принцип работы программы описан в репозитории, но если честно, я не очень понял полную реализацию. ⇨ Исходники #docker #devops
Releases · iximiuz/cdebug

cdebug - a swiss army knife of container debugging - iximiuz/cdebug

GitHub