Docker compose - группы контейнеров. Docker

preview_player
Показать описание
Docker: используем docker compose для объединения наших контейнеров в группу и определения связей между ними, совместного запуска и обслуживания.

Docker compose - это вроде клея, который позволяет запускать контенеры в единой связке, в одной подсети и в строго определённом порядке

Как поддержать проект:

docker compose 0:06
Сборка образа из Dockerfile 2:00
Сборка из registry 2:15
Определяем сервер БД 2:39
Вынос данных БД из контейнера 3:39
Переменные окружения (пользователь бд, пароль, имя бд) 4:38
Определяем сервер приложения 6:03
Проброс имени хоста в контейнер 7:09
Links - задаём порядок старта контейнеров 8:44
Определяем прокси 9:39
Конфигурируем прокси 10;46
docker-compose -f 12:35
docker-compose up 12:53
docker-compose start 14:53
docker-compose images 15:00
docker-compose ps 15:47
docker-compose top 15:59
docker-compose logs 16:21
docker-compose stop 16:51
docker-compose down 17:01
docker-compose --scale 17:27

Код из видео:

Docker compose:

Введение в использование редактора vi:

Отладка вэб приложений в браузере:

Образ nginx:

Образ postgres:

Образ drucoder/web-server:

Документация по nginx:

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

Поддержать проект:

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

Рекомендации по теме
Комментарии
Автор

По-моему, links немного устарела, часто вижу что используют depends_on.
Хотя я тут могу ошибаться

alexwhite
Автор

Спасибо за видео! Два момента, на которые хотелось бы обратить внимание:
1. links, как уже написали в комментариях, объявлена устаревшей. Необходимо использовать depends_on
2. Не нужно просто так открывать вовне порты сервисов. На самом деле, в данном случае наружу должен быть виден только порт nginx. Все остальные должны быть видны только внутри виртуальной сети, поднимаемой докером при выполнении docker-compose up. Исправить легко - при указании
ports:
- 3000:3000
этот порт будет виден на хост-машине и, скорее всего, из интернета вообще (про nat говорить сейчас не будем).
Писать лучше так:
ports:
- 3000

Небольшое изменение синтаксиса, но теперь этот порт доступен только для сервисов, описанных в docker-compose.yml

mrtis-nwo
Автор

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

alexanderyermakov
Автор

Спасибо, есть полезные фишки про которые еще не слышал

EvgeniiYa-wbuz
Автор

Когда то Ваш канал помогг мне разобраться с разными версиями Python благодаря использованию PyEnv. Теперь закрыл немного непонимания с Docker. Спасибо за обалденную подачу материала. По поводу Docker, хотелось бы еще видео по правильному деплою.

rusrom
Автор

Спасибо за видео. Подписался в надежде на продолжение, но уже прошло полгода, даже не знаю, есть ли еще надежда)

DarkzarichV
Автор

О. Респект. Тока сегодня подумал, что порабы новое видео по докеру глянуть, и вот оно.

TheSaymonFenix
Автор

Впервые зашел на Ваш канал. Только осваиваю docker и как раз был вопрос с links и Вы пояснили. Круто!! Вот таких видео с пояснениями мало, больше для опытных пользователей. Спасибо огромное Буду теперь следить за новыми выпусками :)

EugeneSereda
Автор

Сижу смотрю в 6 утра... Про сон как-то больше в душу заходит.

CatSpyder
Автор

Лайк однозначно! Большое спасибо за видео!

denisk
Автор

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

slavious
Автор

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

reborn
Автор

Нода умеет работать с потоками и сама может запускать несколько экземпляров себя)

lhqrjsc
Автор

Было бы интересно, если бы вы показали как сделать авторизацию через oauth2 и кастомную jwt.

rpdecbk
Автор

Лайк, если тоже ненавидишь слово environment!

Blowjin
Автор

Круто, спасибо)
Можешь залечить за nginx? Просто те определения, в том числе и из википедии, которые я читал, у меня вызывают только один вопрос "и че?". Ну типа, зачем он нужен, когда нужен, когда можно без него, и т.д.

gaben-agent
Автор

4:00 Тут не только сохранение файла при пересоздании контейнера важно (при достаточной степени извращенности, мы могли бы из старого контейнера забирать текущее состояние БД), но и и скорость записи в UFS - like системы.
Делать БД на UFS - так себе затея по производительности.

dzen
Автор

Подскажите пожалуйста - а зачем на 5:36 в видео мы определяем переменную окружения PGDATA? Ведь в контейнер и хост итак синхронизируются через volumes.

ybtnmro
Автор

спасибо за видео! А на 20:03 был комментарий: "...имена серверов при скейле будут складываться по сложному правилу... я покажу в следующем видео..." это речь про nginx, в его конфиге надо было что-то не так указывать?

altRUst
Автор

Правильно ли я понимаю, что ports: - 5432:5432 в docker-compose файле не открывает порт в самом контейнере, эта команла всего лишь мапит порты хоста и контейнера? то есть, этого не достаточно, чтобы получить доступ по порту 5432 в контейнере, для этого нам еще нужно указать в Dockerfile EXPOSE 5432, и именно эта команда открывает доступ к контейнеру по этому порту?

zheka