Невозможно попасть в пространство имен контейнера с помощью bin/bash
В одном терминале у меня работает контейнер
docker container run --rm -it bash
В другом терминале я хочу запустить bin / bash в том же пространстве имен, что и запущенный контейнер выше. Для этого я выполнил следующие шаги:
Возьмите PID работающего контейнера
docker inspect --format {{.State.Pid}} 32d7a757bc05
Скажем, PID 3386. Когда я запускаю
sudo nsenter --target 3386 --mount --uts --ipc --net --pid bash
Я получаю эту ошибку
nsenter: failed to execute bash: No such file or directory
Но если я изменю
bash
к
sh
как показано ниже, это работает
sudo nsenter --target 3386 --mount --uts --ipc --net --pid sh
Я использую Centos 7, докер версии 20.10.6, и, как вы заметили, я запускаю свой контейнер из образа bash . Я не могу понять, почему не работает bash. Может кто-нибудь объяснить это?
1 ответ
То, что вы описали, действительно сработало для меня:
sudo docker container run --rm -it bash
Во втором терминале:
sudo nsenter --target 604861 --mount --uts --ipc --net --pid bash
bash-5.1# which bash
/usr/local/bin/bash
где я нашел PID, как вы описали, используя
docker inspect --format {{.State.Pid}} CONTAINERID
.