Иногда слышу вопросы от коллег типа: "Как выполнить какой-нибудь запрос из контейнера, если в нём нет curl?". Или: "Как снять дамп из контейнера, если в нём нет tcpdump?".
Есть один очень простой способ, как выполнить любую команду внутри сети контейнера. Единственное, что вам понадобится, это доступ с root-правами к хосту.
1. Находим PID процесса контейнера. Обычно для этого достаточно выполнить
ps aux | grep "команда запуска вашего контейнера", но если контейнеров запущенной одной и той же командой на хосте много, то лучше воспользоваться CLI вашего рантайма (типа crictl) для опредленя PID'а нужного контейнера. 2. Заходим в сетевой неймспейс этого процесса через команду
nsenter -n -t $PID, где -n значит network. Всё. Можете проверить, что вы там, где нужно, введя команду
ip a.Это очень полезный метод, когда вам либо самим нужно что-то проверить, либо когда нужно доказательство клиенту, что с трафиком из контейнера 100% всё порядке.
Между инцидентами
Реклама. Давыдов И.А. ИНН 775108336633. erid: 2W5zFGaTMax
