
Комментарии 23
TLDR: Запускали ли вы хоть раз Докер?
Скачал я значит себе книжку по докеру. Пропускаю все длинные вступления благодарности и тп и на дцать какой то странице почти дословно: представьте что докер это виртуальная машина...
Мне кажется, первое про что надо спрашивать на интервью это:
границы применимости докера?
в чем отличие докера от подмана?
контейнер упал, где логи Лебовски?
... и вот тут сразу все становится понятно с кандидатом
Даёт удобство развёртывания в обмен на жертву некоторой степени производительности, безопасноcти и необходимости поддерживать доп. инструмент. В какую сторону и насколько склоняться - вопрос конкретного проекта. It depends.
Хз никогда не работал с подманом.
Где прописали, там и будут) или это вопрос на знание команды docker logs и подобных?
Границы применимости это вопрос не только (и не сколько) про когда надо - про это любой маркетолог с тремя классами школы расскажет. Границы применимости это вопрос про то когда НЕ надо использовать инструмент, в каких кейсах и почему. SQL в докере - норм? Asterisk (условный) почему нельзя? Вот вы тоже пишете зависит от проекта - как понять контеризируемый это проект или нет?
А это вопрос не про работал/не работал, у подмана на главной написано основное отличие. Там правда одно слово, но под ним фундаментальное отличие
это вопрос про траблшутинг. Запустить проект любой
домохозяйкаджун может. А вот когда напродевсе внезапно умерло или бесконечно рестартится или и то и другое одновременно
2. Open Source?
другое слово. Не "r" начинается, на "less" заканчивается
Rootless? Хорошее свойство.
Скрытый текст
Ещё одно слово на главной написано, на "r" начинается, на "less" заканчивается — «regardless», но оно сюда не очень подходит.
1) А что не "норм" с SQL и Asterisk в docker? Если конечно понимать для чего. И если учитывать особенности. Например для тестов и временной разработки/отладки.
Если конечно понимать для чего.
Я на собесе и жду примерно такого ответа(только развернутого). Вот это тестировать норм, вот это нет смысла, вот то если bare metal'а нет, но на свой страх и риск, а вот тут мы не можем потому что...Ну и как я писал выше, меня в первую очередь интересует когда НЕ можем. Начиная от модифицированных ядер и приложений критичным к реальному времени (всякое связанное с ОСРВН) и железу, заканчивая rootless(плавный переход к вопросу 3)
SQL в докере - норм?
норм, а какие проблемы ?
И как, sql в докере норм или не норм?
Очень надеюсь, что люди которые готовятся к собеседованию, прочитав этот поверхностный нейрослоп, все же зайдут в официальную документацию и прочитают более детально про все нюансы: и наглядную табличку про взаимодействие CMD и ENTRYPOINT, и про такую базовую штуку как билд-кэш, про котороую ваша нейросеть забыла упомянуть, и про то что runtime secrets работают не только в Swarm, а еще и в Compose, и про то, что secrets бывают, вообще-то, не только runtime но еще и build-time, точно также как и переменные среды и многое другое...
Исторический контраргумент напрашивается сам.
От создателей «выучи Kubernetes за 5 минут» и «Docker — это просто виртуалка, только легче». Слышу этот разбор вопросов каждые 2-3 года, только темы чуть меняются. В 2019 спрашивали про namespace и cgroups — сейчас то же самое. Знание архитектуры не устаревает, зато «вызубренные флаги» протухают за полгода.
стоит использовать
alpine(весит около 5 МБ) илиdistrolessобразы. Они содержат только самый минимум, необходимый для работы.
не стоит, по крайней мере так голословно, там не glibc, а musl может выстрелить в ногу в самый неподходящий момент
Использование легковесных базовых образов: Вместо полновесных ОС вроде
ubuntuилиcentos(весят сотни мегабайт)
ubuntu 22.04 весит всего 70 Mб
Легковесность: Из-за отсутствия собственной ОС контейнеры «весят» мегабайты, а не гигабайты, и позволяют разместить на одном сервере в разы больше запущенных экземпляров приложений
ну да ну да, а ресурсы откуда брать ? Запусти в разы больше java приложений, каждое из которых кушает 20 Gb памяти ))
ENTRYPOINTневозможно просто так переопределить
а разве флаг `--entrypoint` это не самое простое переопределение ?
host: Полностью отключает сетевую изоляцию между контейнером и хост-машиной. Контейнер использует сетевые интерфейсы самого сервера.
но не доступен на MacOS
Пример:
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
а потом слышим крики - а у меня локально работает/не работает. Ваш докер г@вно
Что у вас спросят про Docker на интервью? Разбираем 10 главных вопросов