Использование nsenter для доступа к сети Docker, к которой не подключены запущенные контейнеры - PullRequest
0 голосов
/ 06 июня 2018

Все, что я читаю, использует PID контейнера, который использует эту сеть.К сожалению, контейнер умирает из-за проблем с сетью.Я хочу войти в пространство имен сети и запустить команды, а не запускать другой контейнер в этой сети.

Моя папка / var / run / docker / netns / пуста.Но сеть представляет собой мостовую сеть, которая отображается в docker network ls

1 Ответ

0 голосов
/ 06 июня 2018

Когда контейнер запускается, он получает свое собственное пространство имен сети, если он не запущен с --net=none или --net=host.Это пространство имен удаляется после остановки контейнера.Таким образом, вы не сможете отлаживать что-либо, связанное с сетью этого контейнера, когда он не запущен.

Вам необходимо проверить журналы контейнера, чтобы выяснить, почему контейнер вышел.

В любом случае, вот некоторыесоответствующие примеры команд:

pid=`docker inspect -f '{{.State.Pid}}' $container_id`

mkdir -p /var/run/netns
rm -f /var/run/netns/$container_id
ln -sv /proc/$pid/ns/net /var/run/netns/$container_id
nsenter -m -t `pidof dockerd` nsenter --net=/var/run/docker/netns/4-4ef4272ac1 ip link
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...