0: Итак, вот мы и подобрались к докеру. Если мы хотим развернуть наше приложение где-либо, нам точно нужен докер. Без него мы не обойдёмся. Давайте посмотрим на то, что это, как это нам помогает. И затем восполь.
1: Пользуемся докером. Итак, докер, зачем он нужен? 1, знаете, такую историю, когда вам друг говорит, что, ну, у меня все работает на компьютере, я тебе сейчас код скину, ты тоже запусти. Должно работать 100%. Вы запускаете.
2: И ничего не работает, естественно, а все почему, что у друга другая версия операционной системы, другие версии библиотек, другая версия python и так далее. Докер позволяет фиксировать зависимости так, чтобы, если у вас работает
3: На ноутбуке, например, и вы деплоите куда-то на сервер сторонний там тоже это будет работать далее. Ну, как я и сказал, одинаково хорошо работает на ноутбуке и на современном сервере. И это позволяет 1 раз, упаковав приложе
4: Затем его переиспользовать, да, то есть вы упаковали локально, у вас все работает. Вы развернули на 1 сервере, потом захотели масштабироваться, развернули на ещё парочке серверов тот же самый фастапи наше приложение апи и у нас какой-то есть
5: Балансировщик нагрузки, он при большом потоке клиентов балансирует нагрузку, соответственно, на там 1 сервер, на другой, на 3. Давайте немножко посмотрим на терминологию и поймём, с чем будем работать. Есть 2 основных термина, это образ и
6: Контейнер. Что такое образ? Образ это ничего более чем шаблон для создания контейнера. И на примере это будет понятнее. У нас есть образ постгре эскюэл 15 версии, там 14 версии, образ редиса 7, там 6 версии они весят обычно довольно много
7: Там гигабайт, ну, в зависимости от собственно технологии, там питон весит, там под 800 мегабайт, бывает там not jazz тоже много весит, и чтобы нам собрать, запустить приложение num, нужен какой-то образ. Так вот, контейнер это
8: Запущенный образ мы можем иметь postgresql, но он не будет работать, если мы не запустим его, запускается образ в контейнере и в контейнере указывается конкретный сервер порт, какие-то настройки, конфигурация там, логин, пароль.
9: Название базы данных, пароли для редиса и так далее. Они все сдаются уже при запуске этого образа, то есть образ, какая-то дефолтная сборка. А в контейнере мы уже настраиваем её кастомно под свои нужды. Давайте посмотрим вот на такую картинку обратим
10: Внимание на левую часть. Сначала клиент клиент. Это мы с вами. Мы будем запускать команды. Docker build? Docker run docker pull. Не будем дальше, что происходит? У нас есть докер, там хранятся images, образы.
11: Как я сказал здесь например ubuntu редис и они запускаются в каких-то контейнерах, да, у нас может быть например большое приложение, как у нас с вами там будет образ питона, там будет образ редиса postgresql и мы будем
12: Запускать контейнеры с фастапи да, который использует образ пайтона, мы будем запускать базу данных постгресс, который использует образ postgres redis, также и, например, селари и flower, который тоже для которых нужен только python.
13: И ничего более. Таким образом, у нас будет где-то 5 контейнеров. И здесь ещё есть реджестри, это просто какое-то хранилище образов. Нас оно пока не очень интересует. Ну мы, понятно, к нему будем обращаться, но оно нас сейчас не очень интересует.
14: На этом по докеру все. Я также оставлю комментарии, ссылочки полезные на материалы про докер. Если вам хочется лучше погрузиться в него. И также дальше мы перейдём к установке докера и