08-Docker-COMPOSE. Простой запуск контейнеров.

Поділитися
Вставка
  • Опубліковано 25 тра 2024
  • 08-Docker-COMPOSE. Простой запуск контейнеров.
    Docker Compose - это средство для определения и запуска приложений Docker с несколькими контейнерами. При работе в Compose вы используете файл YAML для настройки служб приложения. Затем вы создаете и запускаете все службы из конфигурации путем выполнения одной команды.
    00:00 | Зачем нужен docker-compopse
    01:00 | Примеры запуска контейнеров
    03:37 | Пример описания одного контейнера в docker-compose
    07:20 | Пример описания 3х контейнеров в docker-compose
    12:45 | Установка Docker-compose
    17:30 | Написание docker-compose.yml
    27:35 | Написание docker-compose.yml для 3х контейнеров
    31:31 | Docker-compose для Flame (Dashboard)
    36:22 | Docker-compose для Heimdall (Dashboard)
    39:07 | Nextcloud в docker-compose
    46:37 | в docker-compose
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Буду очень благодарен за поддержку в виде чашечки ☕️:
    www.buymeacoffee.com/RomNero
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Предложениям пишите на: infotube@romnero.de
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

КОМЕНТАРІ • 107

  • @raminhesenov1376
    @raminhesenov1376 7 місяців тому +6

    Большое спасибо в очередной раз. Благодаря Вам я изучил докеры. Спасибо за Ваш труд! Мне кажется это лучшие видео по докерам в русско - язычной аудитории

    • @RomNero
      @RomNero  7 місяців тому +2

      Спасибо за такой позитивный отзыв 👍

    • @ViktorBokov
      @ViktorBokov 3 місяці тому

      Это правда, я считаю так же. Вы очень талантливый преподаватель!

  • @geekok
    @geekok Місяць тому +1

    Спасибо, Вам, большое за объяснения сложных тем простым языком! Это самое полезное видео на youtube по теме Docker Compose!

    • @RomNero
      @RomNero  Місяць тому

      Спасибо 👍

  • @valarg5756
    @valarg5756 Рік тому +8

    Самый крутые видео по докеру. Максимально понятно и последовательно. Спасибо.

    • @RomNero
      @RomNero  Рік тому +1

      Спвсибо за отзыв. Значит делал не зря👍🏻😊

  • @qudr0151
    @qudr0151 Рік тому +15

    Спасибо за ваш труд, очень хорошая подача материала, всех благ вам

    • @RomNero
      @RomNero  Рік тому +1

      Спасибо за отзыв. Буду продолжать в таком же стиле

  • @DzmitryDz
    @DzmitryDz Рік тому +5

    Большое спасибо за курс: он был очень полезен для меня.

    • @RomNero
      @RomNero  Рік тому +1

      Спасибо за отзыв. Значит делал не зря. Ещё сделаю несколько дополнений. Но вот все видео до этого момента - это основные по докеру.

  • @user-sp4oq7yk9w
    @user-sp4oq7yk9w Рік тому +3

    Привет из Новосибирска
    Огромное спасибо тебе добрый человек !
    Очень познавательно и интересно !
    Объясняешь отлично !

    • @RomNero
      @RomNero  Рік тому

      Спасибо большое за отзыв. Буду продолжать👍🏻

    • @user-sp4oq7yk9w
      @user-sp4oq7yk9w Рік тому

      @@RomNero а вот у меня есть вопрос
      Про хранения данных.
      Вот мы указали именные volume на примере базы данных.
      Мы вносим какие то изменения делаем работу и т.п и вот я хочу узнать где все это лежит ? Файл баз данных лежит на машине где мы запускаем докер ?
      И если да то как допустим я его могу скопировать или сделать бэкап?

    • @RomNero
      @RomNero  Рік тому

      Файлы хранятся на хосте в той директории, которая указана в левой части volumes.

  • @untidycriminal
    @untidycriminal Рік тому +5

    Шикарно, как и предыдущие ролики.Спасибо за проделанную работу!

    • @RomNero
      @RomNero  Рік тому +1

      Спасибо за позитивный отзыв.

  • @Klaz73
    @Klaz73 Рік тому +6

    Как всегда доступно и понятно! Благодарю!

    • @RomNero
      @RomNero  Рік тому

      Всегда пожалуйста. Спасибо за отзыв👍🏻

  • @erimitis
    @erimitis Рік тому +3

    Спасибо за такое доходчивое объяснение! Вы делаете доброе дело.

    • @RomNero
      @RomNero  Рік тому

      Спасибо за позитивный отзыв.

  • @milordplus
    @milordplus 6 місяців тому +1

    Спасибо за все ваши видео уроки! Очень круто!

  • @st.engineer96
    @st.engineer96 Рік тому +1

    Спасибо большое за серию уроков по докеру, очень понятно

    • @RomNero
      @RomNero  Рік тому

      Спасибо за отзыв. Рад помочь 👍🏻😉

  • @humbucker8040
    @humbucker8040 Рік тому +4

    Самые годные видосы по докеру! Прям ждал. Стал хоть понимать что происходит за кулисами портейнера!

    • @RomNero
      @RomNero  Рік тому +1

      Спачибо. О Portainer тоже сделаю видео.

  • @andrey.nekrasov
    @andrey.nekrasov 8 місяців тому +1

    Спустя 2 года использования докера, только сегодня я узнал, что можно было нормально, а не docker run с параметрами в баш скрипте ))) А раньше мучался с обновлениями - остановить, удалить контейнеры и имиджи, запустить заново (о, ура, свежая версия заббикса например).

  • @dillon3209
    @dillon3209 Рік тому +3

    Спасибо, очень сильно ждал!)

    • @RomNero
      @RomNero  Рік тому

      Рад помочь. Спасибо. 😉

  • @senkamatic8448
    @senkamatic8448 Місяць тому

    Это действительно самые понятные видео!!! Спасибо огромное!

  • @AK-md1dq
    @AK-md1dq 8 місяців тому

    Автору огромная благодарность! Всё доходчиво объяснено.

    • @RomNero
      @RomNero  8 місяців тому

      Спасибо 👍

  • @JassonAXE
    @JassonAXE Рік тому +2

    Дякую, просто шикарно :)

  • @zheky8002
    @zheky8002 Рік тому +2

    Отличное Видео, спасибо за ценный материал:)

    • @RomNero
      @RomNero  Рік тому

      Спасибо за отзыв👍🏻

  • @sovrinfo
    @sovrinfo Рік тому +1

    Спасибо за видео. Коммент в поддержку!

    • @RomNero
      @RomNero  Рік тому

      Спасибо за поддержку👍🏻

  • @jonibek_khojibaev
    @jonibek_khojibaev Рік тому +2

    Просто супер!

    • @RomNero
      @RomNero  Рік тому

      Спасибо за отзыв 👍🏻

  • @andreyshkumat4283
    @andreyshkumat4283 Рік тому +1

    Благодарю

  • @dillon3209
    @dillon3209 Рік тому +1

    Надеюсь будет продолжение)

    • @RomNero
      @RomNero  Рік тому

      На какую тему ждёте видео? 👍🏻

    • @dillon3209
      @dillon3209 Рік тому

      Связки с Кубернетес)

    • @RomNero
      @RomNero  Рік тому +1

      По K8s будет серия видео. Но точную дату пока не могу назвать

  • @whoamiscorpion3937
    @whoamiscorpion3937 Рік тому +2

    С нетерпением жду продолжения ваших курсов и хотел бы спросить уроки по ansible ещё актуальны?

    • @RomNero
      @RomNero  Рік тому

      Спасибо. Продолжение будет.
      Уроки по ansible актуальны.

  • @user-iv2eq4jk4m
    @user-iv2eq4jk4m Рік тому +3

    Спасибо за ваш подход и труд. Годные видео по Docker. Будут ли ещё видео по данной технологии и какие?

    • @RomNero
      @RomNero  Рік тому

      Спасибо за отзыв.
      Ещё, будет 1-2 видео по темам точно не могу сказать. Ещё не готовы😊

  • @user-lw1ux3vp6k
    @user-lw1ux3vp6k Рік тому +1

    вах, красаучэг. как все хорошо расписал. А закинь видос, плз, что там для продакшина за переменные и безопасность ты упоминал. Я не девопс, мне просто любопытно)

    • @RomNero
      @RomNero  Рік тому

      Спасибо😄

  • @KrZn104
    @KrZn104 7 місяців тому

    Спасибо большое за материал! Доступно, понятно, доходчиво 👍
    У меня вопрос. А можно ли запустить определённый сервис в фоне, описанный в yml файле. Не командой, docker compose -f docker-compose.yml up -d
    а конкретно инструкцией из yml файла?

  • @whoamiscorpion3937
    @whoamiscorpion3937 Рік тому +2

    Здравствуйте, спасибо за ваши старания, отличная подача материала для начинающих но есть одна маленькая проблема, можете оставить исходники файлов docker compose yml, намучился искать пробелы линейкой

    • @RomNero
      @RomNero  Рік тому +1

      Спасибо за отзыв. Загрузил исходники-примеры на GitHub: github.com/RomNero/UA-cam-Infos/blob/main/Docker/08-docker-compose.txt

  • @starunski_
    @starunski_ Рік тому

    !!!super

  • @IrenaW
    @IrenaW Рік тому +4

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

    • @RomNero
      @RomNero  Рік тому +1

      Спасибо за отзыв.
      Одно небольшое видео о proxmox есть на канале. Будут ещё. Сказать когда, пока не могу.

    • @DemoriaN
      @DemoriaN Рік тому

      а в чем вопрос по проксмоксу?=)

  • @user-ce9eg9vp5f
    @user-ce9eg9vp5f 10 місяців тому +1

    Здравствуйте!
    Возникли вопрос:
    Правильно ли я понимаю, что docker и docker-compose - это два разных приложения от одного "производителя"? Или же docker-compose является надстройкой над docker?

    • @RomNero
      @RomNero  10 місяців тому +1

      Частично верно. Docker-compose это плагин к Docker. Он расширяет возможности самого Docker.
      Docker-compose сам по себе не работает.

    • @user-ce9eg9vp5f
      @user-ce9eg9vp5f 10 місяців тому

      @@RomNero большое спасибо за обратную связь!

  • @bbs4732
    @bbs4732 Рік тому +2

    Привет, очень круто объясняешь, есть один вопрос который меня интересует, можно ли в docker compose собрать свой собственный образ из докерфайла и запустить из собранного образа новый контейнер?

    • @RomNero
      @RomNero  Рік тому

      Спасибо за отзыв. Да, конечно можно. Нужно вместо image указать build. Примеров хватает даже на офф сайте.

    • @bbs4732
      @bbs4732 Рік тому

      @@RomNero в одной команде нужно указать docker compose build и docker compose run? если да, можете показать пример пожалуйста)

    • @RomNero
      @RomNero  Рік тому

      В официальной документации есть много примеров.
      services:
      frontend:
      image: awesome/webapp
      build: ./webapp
      backend:
      image: awesome/database
      build:
      context: backend
      dockerfile: ../backend.Dockerfile
      custom:
      build: ~/custom

  • @user-iv2eq4jk4m
    @user-iv2eq4jk4m Рік тому

    по примеру на 28 минуте, пытался запустить compose, а оно выдавало ошибку "services.networks Additional property internet/localnet is not allowed" - оказалось проблема с отступами где сети прописывал, хотя YAML-валидатор мне ошибок не выдавал.

  • @user-ie6iw8jz6f
    @user-ie6iw8jz6f 3 місяці тому

    подскажите как вы определяете какую версию необходимо при настройке yml файла какого-либо приклада?

    • @RomNero
      @RomNero  3 місяці тому

      Версия влияет на синтаксис самого compose файл. На приложение это не влияет.

  • @humbucker8040
    @humbucker8040 Рік тому +1

    Будут ли видео по Virtiofs? Спасибо!

    • @RomNero
      @RomNero  Рік тому

      Не планировал, но посмотрю. Если наберётся о чем рассказать, то сделаю.

  • @user-kz5sf6sz6i
    @user-kz5sf6sz6i Рік тому

    Добрый день. Спасибо! Как всегда, видео вышло очень добротное!
    У меня возник вопрос по docker. Не по теме этого видео. Столкнулся с проблемой при запуске gitlab ci pipline на ранние с экзекьютером docker. Пишет постоянно, что не может зарезолвить хост. 2 дня поиска проблемы привели к тому, что есть у docker демона свой какой-то iptable. Знаете ли Вы что-то про это? И может будет на данную тему видео?

    • @RomNero
      @RomNero  Рік тому

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

    • @user-kz5sf6sz6i
      @user-kz5sf6sz6i Рік тому

      @@RomNero к хосту подключается, раннер зарегистрирован. Да и образ брал для теста, как в Вашем видео по gitlab ubuntu:20.04 Как только переделываю раннер на shell - сразу все выполняется😕

    • @RomNero
      @RomNero  Рік тому

      Что должен делать раннер?
      Попробуй написать такой Job, который тестирует сетевое подключение. И тогда в консоле на gitlab можно определить ошибку.
      Я думаю, что это какая-то мелочь))

    • @user-kz5sf6sz6i
      @user-kz5sf6sz6i Рік тому

      @@RomNero большое спасибо, буду пробовать, а job должен просто echo вывести😀

  • @MK6N7H
    @MK6N7H 10 місяців тому +1

    Офигенный урок, не собирался смотреть 50 минут т.к. искал только ответ на вопрос, а в итоге и не заметил как прошло это время. Всё доступно и понятно рассказано. Но и покритикую тоже - нужно чаще показывать результат некоторых происходящих действий: например мы создали named volume, и сказано что где-то что-то создалось в какой-то папке. Лучше бы показать после запуска где и что, а то не совсем понятно. Конечно я нашел ответ сам, но гораздо понятнее когда сразу объясняют и показывают.

    • @RomNero
      @RomNero  10 місяців тому

      Спасибо за отзыв и за полезное замечание. Приму во внимание👍😉

    • @milordplus
      @milordplus 6 місяців тому

      И как же и где?)) Я пока не искал, но тоже стало любопытно)

  • @handleftman
    @handleftman Рік тому +1

    7:14 Уважаемый автор, а нет ли тут ошибки, вы описали сеть, но контейнеру её не указали, или это потом будет?

    • @RomNero
      @RomNero  Рік тому +2

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

    • @handleftman
      @handleftman Рік тому

      @@RomNero да, увидел это, значит сомнение не просто так возникло, спасибо , что подтвердили его. Осталось понять правила по которым композ именует отображаемые имена (увидел зависимость от родительской директории) и ещё сеть почему-то берётся от имени сервиса, пока разбираюсь

    • @RomNero
      @RomNero  Рік тому +1

      А нет, сорри за путаницу, все верно. В этом случае настройка сети относится ко всем сервисам в compose (контейнерам).

    • @handleftman
      @handleftman Рік тому +1

      @@RomNero ох... Предположим это правда, а как мне в описываемом yml файле один контейнер впихнуть в default bridge? Получается надо его намеренно указать? Кажется с каждым днём погружения в докер у меня больше вопросов, но вы всё равно можете меня поздравить - благодаря вам я осилил и запустил связку gitlab+redmine+nginx reverse proxy 😁

    • @RomNero
      @RomNero  Рік тому +2

      Тогда нужно для отдельного сервиса специально указывать сеть.
      Поздравляю😉 Значит делаю видео не зря. Это просто отличная оценка для меня👍

  • @laibach7152
    @laibach7152 Рік тому

    Есть команда чтобы удалить сразу много контейнеров - docker rm $(docker ps -aq) где ключ q возвращает айдишки контейнеров

    • @RomNero
      @RomNero  Рік тому

      Так же можно применить к image и volumes:
      docker rmi -f $(docker images -q)
      docker volume rm $(docker volume ls -q)

  • @nsgrid4110
    @nsgrid4110 Рік тому

    все конечно очень интересно, посмотрел с любопытством , но не понимаю зачем все это делать в командном режиме, автор даже правку файлов делает руками, когда есть Midnight Commander, но главное, например в моем случае (а у меня Synology NAS) докер в виде приложения с GUI, а также ещё такая классная вещь как Portainer позволяют очень многое делать все в графическом режиме, а правку файлов можно ещё сделать просто в File Station, а если нужен рут-доступ, то приложение типа WinCSP отлично позволяет подключаться к NAS по SSH (а при должной настройке и через рут) и тоже править любые конфигурации через интерфейс WinCSP, тут даже MC не нужен уже

    • @RomNero
      @RomNero  Рік тому +1

      Вы забегаете очень вперёд. Кто уже долгое время занимается линуксом, то все вещи, которые вы описали, и так известны.
      Здесь же цель показать как работает докер и что происходит в backend.
      Многие пользуются Portainer, но не всегда знают что именно и как он взаимодействиет с docker.
      Я сам все коды пишу в vscode.
      Если понимать как устроена сама технология, то не важно какими инструментами пользоваться.

  • @ralymbetov
    @ralymbetov Рік тому

    По куберу ролики не планируете?
    Или хотя бы как разворачивать кластер самому на голой убунту. Хотел попрактиковаться, установить кубернетес без миникуба. Вчера весь день потратил, так и не завелся, пробовал по разным инструкциям, все равно ошибки, то Not Ready, то с портом не то. Гуглил, файрволы выключал, включал, разрешал порты, ничего особо не помогло.

    • @RomNero
      @RomNero  Рік тому

      По K8s и Rancher будут видео, но не в ближайшее время. Уж очень обширная тема и нужно правильно и последовательно все сделать.
      Сам K8s поставить просто. А вот управлять pods, namespaces, ingress...

    • @ralymbetov
      @ralymbetov Рік тому

      @@RomNero, так и не смог поставить. После kubeadm init во время pre-flight checks выходит ошибка:
      "[WARNING SystemVerification]: missing optional cgroups: blkio"
      и после завершения инициализации, при попытке проверить "kubectl get pods/nodes/services" выходит ошибка "...was refused - did you specify the right host or port?"
      Гугление не помогает. Пробовал по разным инструкциям.

    • @RomNero
      @RomNero  Рік тому +1

      Если ставите на VMs, то включите в гипкрвизор nested Virtualisation.
      Или попробуйте с другим линукс дистрибутивом.

    • @ralymbetov
      @ralymbetov Рік тому +1

      @@RomNero, только, что нашел еще одну инструкцию ua-cam.com/video/L9kN7E2RN3A/v-deo.html и всё заработало наконец)

    • @RomNero
      @RomNero  Рік тому +2

      Поздравляю. Удачи в изучении 👍🏻

  • @slovaricKRIPTONA
    @slovaricKRIPTONA Рік тому +1

    Было было хорошо если еще на github выложили все коды

    • @RomNero
      @RomNero  Рік тому +1

      Посмотрю остались ли на сервере эти коды. Выложу обязательно.

    • @slovaricKRIPTONA
      @slovaricKRIPTONA Рік тому

      @@RomNero Спасибо, а так все круто, еще бы полный курс по Git для начинающих

    • @RomNero
      @RomNero  Рік тому

      По git есть уже. Вот ua-cam.com/video/znnMmnVgD_w/v-deo.html

  • @nikolaifedorov685
    @nikolaifedorov685 Рік тому

    докА Компос

  • @NodsFrend
    @NodsFrend 7 місяців тому

    я думаю что за акцент. германский :)

    • @RomNero
      @RomNero  7 місяців тому +1

      Хахаха, в я яблочко 😄

  • @grigoriyeltsov
    @grigoriyeltsov Місяць тому

    Спасибо большое!
    У меня сработало лишь когда я :/var/www/html заменил на /usr/share/nginx/html

  • @Asand3r
    @Asand3r 6 місяців тому

    Если бы автор не выпендривался с произношением, было бы проще.

    • @RomNero
      @RomNero  6 місяців тому

      По другому не знаю. Где я - все так говорят.

    • @Alt13ru
      @Alt13ru 3 місяці тому

      он в Германии живет, чё доебался?

  • @call_the_ha9464
    @call_the_ha9464 10 місяців тому

    Привет такой вопрос я подключаюсь с ктор к монго дб и у меня такой еррор
    2023-07-22 13:39:29.230 [cluster-ClusterId{value='64bbdc077448766044c34191', description='null'}-localhost:27017] DEBUG org.mongodb.driver.cluster - Updating cluster description to {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused}}]
    в нете ничего не нашол..