DOCKER-COMPOSE с нуля простыми словами! На примере python, django, nginx. celery, redis и postgresql

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • В этом видео на практическом примере разбираем, как пользоваться docker-compose и зачем он нужен. Разбирать будем на примере простого приложения, которое использует практически все: python, django, nginx. celery, celery beat, redis и postgresql
    00:00 - Вступление
    00:35 - Зачем нужен docker-compose
    01:39 - Что такое docker
    03:49 - Установка docker-compose
    04:05 - Приложение для контейнеризации
    05:45 - Ставим PostgreSQL
    08:45 - Маппинг портов
    14:29 - Настройка образа для django приложения
    23:41 - Зачем нужен nginx, как работать со статикой
    25:55 - Образ для nginx
    27:23 - Как работает volume
    38:24 - Образ для фронтенда (React)
    44:02 - Периодические задачи
    45:15 - Образ для redis
    46:02 - Образы для celery и celery-beat
    51:55 - Ставим все при помощи одной команды
    57:36 - Профили
    58:50 - Запуск контейнеров в локальной сети
    01:00:21 - Healthcheck
    01:04:04 - Как дебажить приложение внутри контейнера
    01:08:32 - Запуск тестов на контейнере
    01:11:04 - Сторонние сервисы
    01:13:06 - Механизм работы volume
    01:13:59 - Работа с сетью, networks
    01:15:36 - Масштабирование
    Ссылка на видео про docker: • Все что нужно знать пр...
    Код на github: github.com/python-dev-blog/do...

Komentáře • 74

  • @simplex2332
    @simplex2332 Před 8 měsíci +9

    Содержание и форма подачи материала на очень высоком уровне.
    Автору большое спасибо!

  • @captain_t0rch688
    @captain_t0rch688 Před 3 měsíci +4

    Это, наверно лучший гайд по настройке докера для Django и Nginx. Просто лучшая, благодарю

  • @gorysilhouette
    @gorysilhouette Před 8 měsíci +5

    Это просто величайшее видео ❤ незаслуженно мало просмотров

    • @elena-deykun
      @elena-deykun  Před 8 měsíci +1

      огромное спасибо за поддержку🤍

  • @antropod
    @antropod Před 20 dny

    Жду с нетерпением видео про kubernetes

  • @user-eh4un2fc1i
    @user-eh4un2fc1i Před 6 měsíci +1

    Это лучшее видео по Docker, которое я только видел на Ютюб!!! Огромная благодарность тебе Елена, разложила все по полочкам и очень подробно все объяснила! Это видео как полноценный курс по содержанию, но при этом все очень компактно и по делу!
    Очень ждем следующее видео, которое ты анонсировала :)

    • @elena-deykun
      @elena-deykun  Před 6 měsíci

      Спасибо за обратную связь)

  • @andersnewmann6961
    @andersnewmann6961 Před 10 měsíci +5

    Топ контент

  • @eugene_mountainland
    @eugene_mountainland Před 8 měsíci

    Классное видео, ждем еще)

  • @NoName-nr9gn
    @NoName-nr9gn Před 7 měsíci

    Отличный контент!
    Жду новых видео

  • @Mary0Kule
    @Mary0Kule Před 2 měsíci

    Великолепный мануал, благодарю. У Вас, кажется, талант разъяснять такие вещи.

    • @elena-deykun
      @elena-deykun  Před 2 měsíci

      Спасибо, рада что было понятно)

  • @79fz270704
    @79fz270704 Před 9 měsíci +2

    Видео класс! Довольно детально, не затянуто, спасибо Алёна!

  • @user-qp9nu8xc8j
    @user-qp9nu8xc8j Před měsícem

    Умничка! Приятно слышать девочку....

  • @vladislav5530
    @vladislav5530 Před měsícem

    Великолепный видеоролик - коротко и емко. Спасибо и всего самого лучшего!

  • @Developer_python_
    @Developer_python_ Před 8 měsíci

    This is very useful, thanks a million!

  • @suslyaev
    @suslyaev Před 8 měsíci

    Долго искал подобное видео. Спасибо!

  • @krevedko_krevedkin
    @krevedko_krevedkin Před 6 měsíci

    Наткнулся на видео случайно, но хочу сказать - Елена огромное спасибо, это замечательно видео, очень качественное, понятное и актуальное для меня)

  • @qq-cd4uf
    @qq-cd4uf Před 10 měsíci +1

    Просто, вау! спасибо, очень полезно! Продолжайте развивать канал)

  • @MrMRcheku
    @MrMRcheku Před 11 dny

    наконец-то я подключил статику, ура. спасибо большое

    • @nurzhansaktaganov8670
      @nurzhansaktaganov8670 Před 11 dny

      как? через whitenoise?

    • @nurzhansaktaganov8670
      @nurzhansaktaganov8670 Před 11 dny

      у меня не подтянулись статичные файлы и я подключил whitenoise

    • @elena-deykun
      @elena-deykun  Před 3 dny

      А что не получилось с тем способом который в видео?

  • @user-st1rj9jl4y
    @user-st1rj9jl4y Před 7 měsíci

    спасибо, то что надо!

  • @abratunets
    @abratunets Před 5 měsíci

    Большое спасибо за данный ролик. Хоть и знакомо уже, но иногда под ужин запускаю посмотреть, что в ленте высветится. Сценарий очень хорошо проработан, материал доносится доступно. Думаю новички по таким видео материал будет очень легко усвоить.
    Единственное, не в обиду конечно, но от слов паразитов (то есть) нужно постараться избавиться. Если первые минуты это ещё ничего, то потом начинает резать по ушам.
    Не останавливайтесь на достигнутом, продолжайте своё светлое дело.

  • @Sakhalinec
    @Sakhalinec Před 5 měsíci

    Хороший материал, полезный! Комфортно слушать приятный голос.
    Нужно больше видео! Надеюсь автор над этим работает)

    • @elena-deykun
      @elena-deykun  Před 4 měsíci

      Спасибо♥️ Автор над этим работает!

  • @user-iu4wu2dk9h
    @user-iu4wu2dk9h Před 4 měsíci

    Ждём некст видео!!

  • @bernardsoul8936
    @bernardsoul8936 Před měsícem

    Огромное спасибо за видео! Наконец-то всё то, что нужно в одном видео! Для меня стало открытием ваш канал =) Подписался)

    • @elena-deykun
      @elena-deykun  Před 3 dny

      Спасибо за обратную связь 🤍

  • @andrewtarasevich199
    @andrewtarasevich199 Před 10 měsíci +1

    Огонь

  • @shunya1994
    @shunya1994 Před 10 měsíci +1

    сдаю сейчас проект и так жалела, что у вас нет видео про docker-compose. И тут такой подарок! Ваши видео про docker так мне помогли. Спасибо огромное ❤

    • @dansmirn2301
      @dansmirn2301 Před 10 měsíci

      на skillfactory?

    • @elena-deykun
      @elena-deykun  Před 10 měsíci +1

      удачи в сдаче проекта! и спасибо за обратную связь)

    • @shunya1994
      @shunya1994 Před 10 měsíci

      @@dansmirn2301на нем 😂

    • @shunya1994
      @shunya1994 Před 10 měsíci

      @@elena-deykunспасибо ❤

  • @lightgod4669
    @lightgod4669 Před měsícem

    очень полезное видео)как-раз то что было нужно,правда для своего проекта пришлось попотеть немного )

  • @user-rt8tp5oq6b
    @user-rt8tp5oq6b Před 2 dny

    Спасибо большое за ролик! Очень полезное видео про docker compose!!! Только у меня статика на беке не подтянулась видимо с nginx что то.

    • @elena-deykun
      @elena-deykun  Před dnem

      Можно залогиниться в nginx контейнер и проверить что папка правильно вмаунтилась и в ней есть нужные стили. Если не вмаунтилась, то смотрим в эту сторону, проверяем что собрали папку со стилями и как она маунтится в docker-compose. Если все верно, то смотрим на настройку nginx, код конфигурационного файла можно посмотреть на гитхабе, ссылка на который в описании, по идее там ничего менять не нужно. И смотрим логи самого nginx контейнера и куда улетают запросы на статику. Важно еще помнить что это 80 порт, а не порт приложения, к примеру 8080. Если не получится, то можете написать в телеграм

    • @user-rt8tp5oq6b
      @user-rt8tp5oq6b Před dnem

      @@elena-deykun Я меня в проекте я в папку с nginx тоже dockerfile добавил и отдельно пути для admin и api прописал в конфиге.
      location /admin/ {
      proxy_set_header Host $http_host;
      proxy_pass backend:8080/admin/;
      } Примерно так!
      Ты умница!!! Даже не представляю сколько инфы нужно переварить, что бы запилить такой видос!

  • @corazonjsx
    @corazonjsx Před měsícem

    Для начинающего будет немножко сложновато
    Да бывает иногда траблы где автор скипает какие то команды(venv, requirements.txt) поэтому не все мб поймут а так впринципе если разобраться самому то видосик супер
    лайк и подписка как говорится
    Пасибки
    :3

    • @elena-deykun
      @elena-deykun  Před měsícem +1

      Да, к сожалению данное видео рассчитано на то что у человека уже есть какой-то бэкграунд для которого он собственно и будет использовать докер, без этого не удалось бы раскрыть тему в полной мере, либо был бы урок на 10 часов по всему подряд, а не по docker compose😅

    • @corazonjsx
      @corazonjsx Před měsícem

      @@elena-deykun да вы правы 😆

  • @nehz_ttv
    @nehz_ttv Před 5 měsíci

    Видео офигенное!!! Будет гайд по k8s? :)

  • @artemunix5223
    @artemunix5223 Před 7 měsíci

    покажи как делать микросервисные монолиты и aws digitalocean

  • @kalbschulz4690
    @kalbschulz4690 Před 2 měsíci

    Можно делать платный курс по докер и это будет бестселлер 👍

  • @jaid5661
    @jaid5661 Před 9 měsíci

    many thanx, react приложение не коннектилось с бекэндом пока внешний порт не поменял с 8001 на 8000 в yml файле, браузер сафари

  • @ssava5936
    @ssava5936 Před 6 měsíci

    видео огонь!! есть только один вопрос, у вас используется заполнение бд из файла, но что если мне нужно будет добавить новые данные в бд вручную в уже запущенном образе, при перезапуске этого образа, те данные в бд, и в самом приложение джанго сохраняться или для этого нужно прописывать volume бд?

    • @elena-deykun
      @elena-deykun  Před 6 měsíci

      Да, для хранения состояния бд нужно использовать volume, иначе каждый раз будет состояние с нуля

  • @LinkstaRuViews
    @LinkstaRuViews Před 5 měsíci

    RuntimeError: Model class django_celery_beat.models.SolarSchedule doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. - вот такая ошибка возникает при старте beats в Docker, при этом django_celery_beat в приложениях указан

  • @vladislav5530
    @vladislav5530 Před měsícem

    Елена, подскажите пожалуйста такой момент по докеру. Целесообразно ли использовать докер вместо того чтобы поднимать nginx+питон и джанго(ну или любой другой язык с фреймворрком) на локальном хосте для разработки проекта? Или это всетаки инструмент для того чтобы завернуть в контейнер готовое приложение и демонстрировать? И как в таком случае конфигурироввть Volume для папок с кодом и для БД? Надеюсь смог сформулировать вопрос.

    • @elena-deykun
      @elena-deykun  Před měsícem

      Тут все зависит от удобства и нужд. Чаще всего докер нужен на этапах когда приложение уже деплоят, либо же он разрабатывается несколькими людьми. То есть имея актуальный докер образ у вас будет возможность всегда его быстро развернуть и запустить на любой машине или сервере. Еще он полезен в случае если на локальной машине ведется параллельно несколько проектов и их зависимости / настойки nginx могут конфликтовать. Докер удобен тем что запускается вне зависимости от всего и в случае если где-то что-то сломалось в настройках, как это обычно бывает, докер от этого защищает и с этой точки зрения поддерживать локальную инфраструктуру может быть проще. Я обычно зависимости типа бд запускаю в докере, а само приложение локально, потому что так все же проще дебажить

    • @vladislav5530
      @vladislav5530 Před měsícem

      ​@@elena-deykun большое спасибо за развернутый ответ.Мне например хочется держать на машине одновременно и Python+django, и PHP+symfony для разработки мелких учебных проектов - наверное тут докер вполне поможет? Вроде возможно БД и рабочую папку вынести в volume?

  • @dansmirn2301
    @dansmirn2301 Před 10 měsíci +1

    Возникает ошибка при установке postgres, невозможно соединиться с базой данных. Могу ли я вас скинуть логи для помощи?

  • @user-fd8zs2zw6p
    @user-fd8zs2zw6p Před měsícem

    Здравствуйте,видео очень полезное,но объясните пожалуйста,volume его главная задача это как я понял замена файлов(папок) в контейнера на локальные файлы на сервере
    ,почему вы не прописали staic_volume:./static объясните пожалуйста

    • @elena-deykun
      @elena-deykun  Před 3 dny

      Да, есть такой момент что если мы монтируем папку из хостовой системы в контейнер, то это bind mounts, их указывать в секции с volume не нужно. Но если мы хотим создать volume при помощи docker, чтобы к примеру сохранить состояние бд между запусками контейнеров, то в таком случае это named volume и он указывается в секции volumes или может создаваться при помощи команды docker volume create

  • @1kuperster
    @1kuperster Před 12 dny

    Заснул и не проснулся

  • @user-dj6nr3ui3n
    @user-dj6nr3ui3n Před 9 měsíci

    Когда пытаюсь сделать Dockerfile как у тебя, а именно то что в CMD, то начинает стучать к бд по неизвестно ip, в чём проблема?

    • @elena-deykun
      @elena-deykun  Před 9 měsíci

      скорее всего в том, что он где-то задан таким, по которому не достучаться

    • @xumpocmb-404
      @xumpocmb-404 Před 2 měsíci

      у меня такие же ошибки. не знаю как решить. контейнер еще не видит другой контейнер.. короче, полный п*№;"ц! решил попробовать докер, убил целый день и ничего не добился, даже запустить не удалось.

  • @xumpocmb-404
    @xumpocmb-404 Před 2 měsíci

    не понимаю как вы это делаете. уже все гайды на ютубе просмотрел, но я 1 особенный. не удается запустить контейнеры, вообще.
    первое с чем столкнулся в строке CMD - не выполняется ни какая из команд. бьет ошибки, что неизвестная хрень написана.
    убрал, окей.
    потом ошибки , что не может найти базу данных. и что бы я ни делал - все равно не может ее найти. по имени сервиса из файла компоуз - не хочет.
    часов 8 уже бьюсь об ошибку:
    django.db.utils.OperationalError: [Errno -2] Name or service not known

    • @elena-deykun
      @elena-deykun  Před 2 měsíci

      а напиши в телеге под последним постом, прикрепи скрин)

  • @easy_Prompt
    @easy_Prompt Před 6 měsíci

    автор боженька. НЕ ИНАЧЕ

  • @andrey3147
    @andrey3147 Před 9 měsíci +3

    Теперь можно откликаться на вакансии Сеньоров.