Я прочитал статьи про то зачем нужен докер, как на нём разворачивать простейшие приложения, но всё ещё не понимаю как я могу его использовать в своём проекте.
Мой стэк — Node.js/Express/TypeScript, MongoDB, RabbitMQ, nginx. Я бы вручную установил ОС, весь стэк, конфигурацию, и общую папку (чтобы не копировать файлы). При необходимости эмулировать продакшн — создал бы ещё один контейнер. Если бы у меня была macOS, то я бы использовал VirtualBox.
Но я до сих пор не понял что мне делать в Docker. Конкретно:
- Ой. Мой список вопросов закончился :)
Отвеченные вопросы:
- Мой главный вопрос — что мне вообще делать с вашим докером? Работать как с виртуалкой?
- Ответ: 1
- Мне нужно все этапы установки, которые я выполнял при ручном создании контейнера, перенести в Dockerfile/docker-compose?
- Зачем нужен DockerHub, если можно выбрать ОС и самому установить нужный софт?
- Ответ: нужно понимать в чём смысл докера, тогда эти вопросы отпадают. Во многих гайдах упускают тот момент, что вы не должны создать единый образ, который содержит всё, а должны все процессы поместить в отдельные контейнеры. Например, приложение на Node.js и сервер MongoDB должны быть в разных контейнерах. В Docker это называется сервисами
- Я в некоторых Dockerfile видел
apt-install
— разве это уже не означает, что образ не иммутабелен? Ведь изменится версия библиотеки в репах — изменится и в твоём образе, разве нет?- Ответ: 1
- Я вижу как в очередном Dockerfile пишут
FROM php:alpine-666
и чуть нижеRUN apt-install ...
. Это значит, что используемый образ из DockerHub — Ubuntu-based?- Ответ: образы в DockerHub действительно базируются на какой-то ОС. Причём не всегда очевидно на какой.
Спасибо!