Добрый день! Подскажите, пожалуйста, силу и функции Docker. Чем он лучше простого хостинга? Какие преимущества? Можете привести ситуацию в которой кроме как Docker'ом не решить вопрос? Он так популярен, но я не могу познать истинную его ценность. Спасибо!
Это просто инструмент который помогает создавать, запускать и управлять виртуальными образами. Настроил какие программы тебе нужны в образе и запустил его.
Этот инструмент позволяет передать другому человеку код с настройками и ему не нужно тратить огромное количество времени на настройку севера.
какие программы например? имеется ввиду настройка сервера: apache, php? что значит виртуальный образ, что в него входит? Я просто примерно такую же информацию нахожу в сети, но не могу понять конкретного применения и значения этих слов в данном контексте. Я благодарен вам за ответ, но был бы еще более признателен, если вы чуть подробнее пояснили, как для дауна) --- Добавлено --- мы передаем исходный код или доступ к исходному коду, который уже "залит" на виртуальную машину в докере?
@h0tah можно запускать операционную систему в операционной системе, например под windows 10 запустить ubuntu и windows 7 одновременно три ОС, ну вот, чтобы не проходить всякие этапы установки и настроек, можно прописать что там должно быть установлено и как настроено.
Про это посмотрите в Что есть Docker Сравнивать надо не с обычным хостингом, а с виртуалкой VDS/VPS с чистым линуксом, где вы как администратор сами всё ставите в консоли. Docker там удобнее тем, что сервер не захламляется. Вместо того, чтобы ставить Apache на сам сервер мы ставим Apache с нашим PHP-кодом в образ и закидываем уже этот образ на сервер. И из этого образа запускаем. Захотелось что-то поменять – просто собираем новый образ, закидываем и запускаем вместо старого. И на локалке удобен тем у всех программистов запускается одно и то же автоматом из одних и тех же конфигов. Не нужно каждому вручную всё устанавливать и одинаково настраивать.
Можно запускать разные версии приложений одновременно, каждое со своими конфигами. У меня так запущены php 5.6/7.1/7.4. 7.4 несколько вариантов (с конфигами для битрикса, дефолтная, со всякими node, npm, git и пр.). Также запущены 2 версии mysql (опять же для битрикса и для всего остального). При этом это гораздо легче, чем запускать несколько виртуальных машин. Также удобно управлять контейнерами - можно отключать/обновлять контейнеры (окружение внутри них) по очереди. Можно запускать под каждое приложение/сайт свой контейнер под своим пользователем: то есть пишем один dockerfile и используем в разных контейнерах, прокидывая туда uid и gid пользователя. Так мы изолируем приложения: внутри контенеров каждый пользователь www-data будет со своим id. На хосте у них естесственно никаких sudo. Про основной плюс - простота настройки окружения - уже описали выше. На https://hub.docker.com полно образов. Выбирай необходимые, включай в docker/docker-compose и готово.