Я использовал nsenter за последние несколько месяцев, чтобы получить оболочку, запущенную в контейнере для целей отладки. Я слышал и использовал docker exec, который был представлен в версии 1.3. Docker exec представляет собой новую передовую практику с целью попасть внутрь контейнера для целей отладки, но мне интересно, есть ли какие-либо недостатки в использовании docker exec versus nsenter. Информация, сравнивающая эти два, скудна. Существуют ли какие-либо конкретные проблемы, которые я должен соблюдать или избегать при использовании docker exec
против nsenter?
Docker exec против nsenter: Есть ли какие-либо ошибки?
Ответ 1
Это не совсем ясно сейчас. Но я поддержал бы мнение, что, поскольку docker exec
является официальным способом, нужно пойти с этим. Автор nsenter
фактически рекомендует использовать docker exec
. Если у вас возникнут какие-либо недостатки, он рекомендует вам сообщить об этом.
Ответ 2
docker exec против nsenter
Существуют различия между nsenter и docker exec; а именно, nsenter не входит в группы и, следовательно, уклоняется от ограничений ресурсов. Потенциальным преимуществом этого может быть отладка и внешний аудит, но для удаленного доступа, docker exec является рекомендуемым в настоящее время методом.
Работает только на 64-битных платформах Intel. Возможно, это единственная официально поддерживаемая платформа для Docker; так что это не большое дело.
nsenter все еще нужно запускать с хоста; он не может работать внутри контейнера (пока).
ref: https://github.com/jpetazzo/nsenter/blob/master/README.md