
Вы когда-нибудь чувствовали, что нарушаете естественный порядок вещей? Что копаетесь в глубинах, которые лучше не тревожить? Именно так я чувствовал себя, когда решил запустить Docker в Docker'е. Всё началось как обычный рабочий день, а закончилось — хорошо, что не вызовом экзорциста.
Начало конца
Идея казалась простой: запустить контейнер внутри контейнера. Казалось бы, зачем? Потому что можно. Как говорят великие разработчики, если ты можешь что-то сделать в IT — рано или поздно ты это сделаешь, даже если знаешь, что не стоит.
Итак, я запустил:
docker run -it --rm --privileged docker:dindИ в этот момент где-то в тёмном углу серверной закричал один админ.
Симптомы одержимости
Всё шло хорошо… примерно пять минут. Потом начались странные вещи:
Логов стало подозрительно много. Их было больше, чем строк в коде проекта. Они просто лились бесконечным потоком, как будто я случайно открыл портал в ад.
Память сервера превратилась в мем:
Контейнеры начали появляться сами по себе. Я не запускал их. Они просто были. Как будто Docker решил, что теперь он сам себе хозяин.
Команды docker ps и docker stop перестали работать. Точнее, они работали, но результаты были… сюрреалистичными. Как будто я разговаривал с сущностью, которая больше меня не слушается.
Расплата
Я попытался остановить процесс. docker stop, docker kill, docker rm -f — ничего не помогало. Тогда я пошёл ва-банк и выполнил:
sudo systemctl restart dockerНа секунду всё стихло. Затем экран терминала мигнул, и в логах появилось странное сообщение:
[daemon]: You shouldn't have done that.Я посмотрел на коллегу. Он посмотрел на меня. Мы оба нервно рассмеялись. Очевидно, это просто шутка в логах. Верно? Верно?
Итог: мораль сей басни
Не запускайте Docker в Docker'е, если не готовы к сюрреализму.
Если что-то работает — не трогайте.
Если ваш сервер внезапно начинает вести себя как разумное существо — бегите.
Лучший способ исправить проблему с Docker — это форматнуть сервер и начать новую жизнь.
P.S. Через день после этого у нас на сервере почему-то появилась папка lost+found с файлом docker_is_watching_you.txt. Я не открывал его. И вам не советую.
