Так что, с одной стороны, да, изоляция файловой системы Docker означает, что такие команды, как rm -rf
, по умолчанию не могут сделать больше, чем повредить файловую систему контейнера.
Существует довольно большое разнообразие вещи, которые люди обычно делают, которые ослабляют это. Вы привязываете исходный код своего хоста в контейнер, чтобы упростить разработку? Вредоносный код может повредить ваше дерево разработки или скрытно вставить коммиты в ваш каталог .git
. Прикрепите гнездо Docker в контейнер, чтобы можно было запускать другие контейнеры? Это просто - воспользоваться преимуществом root для всего хоста.
Это также лишь небольшая часть того, что возможно с eval()
. Эксплуатация ядра Linux происходит довольно регулярно, и, поскольку контейнеры Docker совместно используют ядро хоста, eval()
ed-код может воспользоваться этим. Есть также такие вещи, как майнеры криптовалюты, которые не опасны per se , но вы все равно не хотите использовать их для других людей.
Что касается вашего узкого вопроса, да , Docker предоставляет вам защиту от вредоносного кода, повреждающего файловую систему хоста, но есть еще много других вещей, которые может сделать вредоносный код, и я бы не стал пытаться использовать контейнер Docker в качестве изолированной среды для действительно ненадежного кода.