Docker exec против nsenter: Есть ли какие-либо ошибки?

Я использовал nsenter за последние несколько месяцев, чтобы получить оболочку, запущенную в контейнере для целей отладки. Я слышал и использовал docker exec, который был представлен в версии 1.3. Docker exec представляет собой новую передовую практику с целью попасть внутрь контейнера для целей отладки, но мне интересно, есть ли какие-либо недостатки в использовании docker exec versus 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