Привет друзья!

В этой серии видео хотел остановиться на вопросе работы Docker в связке с фреймворком symfony. Какие здесь есть особенности, как мы можем работать в этом случае и как это соответственно всё можно настроить. Давайте начнём с того, какие есть варианты настройки окружения для Symfony. Первый вариант - это вариант ручной установки, то есть мы можем вручную установить базу данных в MySQL, установить язык программирования PHP, установить какой-то веб-сервер Nginx либо Apache и соответственно всё это связать вручную и работать вот таким вот образом. Это первый вариант.

Второй вариант - это установить все вот эти перечисленные инструменты, всё вот это окружение полностью через Docker, то есть по сути у нас будет три либо четыре сервиса: сервис база данных, необязательно MySQL, а может быть какая-то другая, PHP соответственно и у нас будет либо Apache либо связка Apache + nginx у нас будет. Таких вот четыре сервиса а у нас может быть установлено через Docker.

Третий вариант работы - это установка каких-то сервисов, которые можно использовать по отдельности, например: у нас на машине установлена язык PHP, у нас установлены веб-сервера и нам совершенно не обязательно их устанавливать, то есть мы можем всё это устанавливать через Docker. Мы можем установить отдельно базу данных, например чтобы протестировать. Например у нас-то стоит база данных MySql и мы хотим попробовать поработать с базой данных PostgreSql.

Устанавливать её например на машину с нуля можно достаточно долго и не хотелось, чтобы это занимало много ресурсов на нашем компьютере, мы можем воспользоваться для этой цели Docker. Установить какую-то базу данных и потестировать.

В этой серии видео я как раз-таки остановлюсь на вопросе работы работы Symfony в связке работы с Docker именно для решения вот этого вопроса. Вопроса работы с отдельными сервисами, в частности сервисом базы данных. Вы можете сказать, а почему бы взять и не использовать второй вариант. Взять и установить например вот это всё окружение на нашу машину, но на самом деле такой способ установки имеет место быть и в принципе Вы можете его использовать. У этого способа установки есть ряд недостатков, на которых хотел бы сейчас остановится.

Во-первых что мы должны с вами понимаете, что Docker это достаточно требовательное к ресурсам программное обеспечение. Когда вы его устанавливаете на компьютер, это такая программа, которая когда запущена, она соответственно ест оперативную память и потребляет ресурсы процессора, причем требования к этим ресурсам не всегда достаточно маленькие. Они конечно меньше относительно виртуальных машин, если бы вы развернули виртуальную машину на вашем компьютере. У Docker конечно требования к компьютерным ресурсам и не меньше, но тем не менее эта программа будет таким вот образом работать.

Но самая главная проблема, почему такой вариант полной связки различных сервисов между собой не очень желателен в использовании - это то, что у нас возникает проблема скорости обмена данными между контейнерами, то есть вот мы установили: контейнер языка PHP, контейнер база данных, контейнер веб-сервера и для того чтобы обмениваться данными между этими контейнерами, когда данные будут обмениваться между собой из-за того, что это связь Docker и обмен этими данными будет происходить достаточно медленно и особенно это будет ощущаться если ваше приложение на каком-то слабом компьютере.

Конечно если вы развернули приложение Docker на какой-то локальной машине, то как правило там хватает ресурсов и всё у вас работает достаточно быстро, но если вы вернёте Docker на какой-то сервере, то это потребует от сервера определённых серверных мощностей, чтобы это всё работало.

Соответственно за каждую серверную мощность Вы должны платить хостингу и иногда бывает для того, чтобы тогда всё развернулась и начала хорошо работать, нам требуются значительные мощности и соответственно мы будем платить нашему провайдеру намного более ощутимую сумму, чем если бы мы развернули проект без Docker приложение либо приложения в приложение, которое у вас будет запущена на Docker.

Нужно иметь в виду что вот это установка через Docker - это одно из тех звеньев, которое будет замедлять ваш web-сайт, соответственно имейте это в виду и для высокопроизводительных сайтов такое решение может быть не всегда приемлемо. Когда Вы можете использовать эту полную связку? Я считаю нужно в том случае если вы хотите что-то протестировать, если вы делаете какое-то ПО, не будет большой нагрузки Вы знаете что это нагрузки не будет посещаемость больше не будет, соответственно Вы можете тоже быстренько развернуть вот такое приложение на продакшн-сервере вручную.

Ну если же вы рассчитываете на высокую посещаемость, если вам нужно нужна производительность, Вы не хотите переплачивать за лишние серверные мощности, то соответственно достаточно будет вполне, то придётся всё-таки наверное из использовать Docker, либо использовать Docker как отдельные сервисы, которые на котором я как раз-таки хотел остановиться в этой серии видео.

Ну и работа с Docker начинается с её установки, нам нужно скопировать и перейти по этой ссылке. Давайте сейчас это сделаем:

https://docs.docker.com/get-docker/

У нас откроется такой сайт и вам нужно установить приложение Docker для своего для своей операционной системы, то здесь есть версия для Mac для Windows для Linux. Я подробно не буду останавливаться на процессе установки этого приложения, в сети есть достаточно много видео, как это можно сделать для каждой операционной системы есть свои особенности, особенно если вы будете устанавливать программу Docker для компьютеров на процессоре AMD, там есть некоторые особенности, требуется установить какое-то дополнительное ПО.

В сети принципе инструкция есть вак это можно сделать, то есть устанавливается это сам Docker и ему ещё дополнительно некоторые драйвера, которые будут дополнительно работу этой системы и после того как Docker у Вас будет установлен у Вас появится дополнительный сервис, такой вот Docker, соответственно такая программка будет примерно у вас установлена в операционной системе. Ну то есть Docker будет работать как сервис и соответственно Вы сможете его в дальнейшем использовать. Ну вот проделайте пока такие подготовительные работы и следующем видео мы с Вами посмотрим как можно работать в Docker, какие средства для работы есть в фреймворке Symfony.