@docker_ru
Docker — русскоговорящее сообщество

Обсуждаем вопросы, посвященные Docker🐳, Docker Swarm и всей экосистеме. Обмениваем идеями, новостями и решаем пробемы. Вам могут быть полезны: @coreos_ru, @kubernetes_ru, @devops_ru, @rkt_ru Рекомендуем сразу отключить уведомления для удобства

2608 members

Архив канала @docker_ru 17 августа 2016 г.

01:28:45 ДП
User 4627228
Все спят?
01:28:49 ДП
User 4627228
Странная вещь
01:28:59 ДП
User 4627228
Есть CoreOS, есть Private Docker Registry (secured)
01:31:06 ДП
User 4627228
Добавляю сертификат в /etc/docker/certs.d/x.x.x.x\:5000/ca.pem
01:31:43 ДП
User 4627228
Запускаю sudo /usr/sbin/update-ca-certificates
01:31:55 ДП
User 4627228
Всё должно бы обновиться, но:
01:33:27 ДП
User 4627228
$ docker tag ssh-resource x.x.x.x:5000/ssh-resource
$ docker push x.x.x.x:5000/ssh-resource
The push refers to a repository [x.x.x.x:5000/ssh-resource]
2e99f6a69e1b: Retrying in 5 seconds 
35c99a8eb384: Retrying in 5 seconds 
ae09f46e56f2: Retrying in 5 seconds 
1a9561b3dd38: Retrying in 5 seconds
01:33:53 ДП
User 4627228
Выдаёт в итоге:
Get http://x.x.x.x:5000/v2/: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
01:34:07 ДП
User 4627228
Т.е. он не пушит как в secured DR
01:42:07 ДП
User 4627228
Оу щит ) Забыл прописать логин-пароль в ~/.docker/config.json #solved
08:22:49 ДП
User 59011046
User 153030146
какое сейчас лучшее решение для замены hub.docker.com  на  приватный registry? желательно попроще и с интерфейсом 😊
обычный реджестри + s3 уже давно ок
08:23:02 ДП
User 59011046
поидее и морды к нему какие-то должны быть
08:40:25 ДП
User 153030146
User 59011046
обычный реджестри + s3 уже давно ок
Да что же вы не читаете, это не я спрашивал)
08:43:01 ДП
User 59011046
Мы решили и теперь это спрашивал ты
08:44:58 ДП
User 980590
я спрашивал =)
10:44:02 ДП
User 119651087
Дайте и сюда закину на вентилятор. Признавайтесь, кто пробовал в продакшене?
http://rancher.com/
rancher.com
Rancher is enterprise management for Kubernetes. Every distro. Every cluster. Every cloud.
11:23:20 ДП
User 4627228
Вот нас и три сотни 🎉🎩
11:24:05 ДП
User 4627228
User 119651087
Дайте и сюда закину на вентилятор. Признавайтесь, кто пробовал в продакшене?
http://rancher.com/
rancher.com
Rancher is enterprise management for Kubernetes. Every distro. Every cluster. Every cloud.
Выглядит пока экспериментально и немного рисковано.
11:24:51 ДП
User 227646933
User 4627228
Выглядит пока экспериментально и немного рисковано.
Не - вообще не эксперементально - довольно интересное решение. Хотя я его честно не щупал
11:25:33 ДП
User 4627228
Есть вот эти две альтернативы - Rkt и Rancher. Но профит их и мотивацию для эксперимента надо бы серьёзно аргументировать.)
12:26:55 ПП
User 105697514
User 119651087
Дайте и сюда закину на вентилятор. Признавайтесь, кто пробовал в продакшене?
http://rancher.com/
rancher.com
Rancher is enterprise management for Kubernetes. Every distro. Every cluster. Every cloud.
в прошлом году пробовал, немного не подошло нам по процессам
01:16:49 ПП
User 167856977
User 119651087
Дайте и сюда закину на вентилятор. Признавайтесь, кто пробовал в продакшене?
http://rancher.com/
rancher.com
Rancher is enterprise management for Kubernetes. Every distro. Every cluster. Every cloud.
в продакшене не юзал но палкой тыкал), штука не плохая, я знаю что чуваки его брали на хаккатоне для их хостинга, очень быстро и легко заинтегрились
04:33:38 ПП
User 66992813
User 105697514
в прошлом году пробовал, немного не подошло нам по процессам
А можно подробнее, в чём была несовместимость? В итоге оставили rancher в решении или убрали?
04:34:24 ПП
User 105697514
Наш вариант использования отличался от того что предлагал ранчер
05:52:30 ПП
05:59:37 ПП
User 1312870
Всем драсте =)
06:00:33 ПП
User 153030146
User 1312870
Всем драсте =)
И твоей руке привет
06:01:52 ПП
User 78022954
подсоны, такой вопрос, ток хуями сразу не кормите
как сделать чтобы при старте хостовой системы контейнеры тоже запускались?
06:02:25 ПП
User 60432071
добавить строку запуска в крон? :D
06:02:38 ПП
User 60432071
или rc.local
06:02:47 ПП
User 78022954
User 60432071
добавить строку запуска в крон? :D
а какогото правильного варианта нет да?
06:02:56 ПП
User 1312870
Ребята, подскажите, пожалуйста!

Делаем из под мака
docker run  -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.0.17

а потом делаем 
mysql -uroot -p123456 -h172.17.0.2 - запрашивает пароль, а дальше висит и не пускает
06:03:00 ПП
User 56224773
правильно - это создать сервис для systemd
06:03:15 ПП
User 56224773
модно, стильно, молодёжно
06:03:22 ПП
User 60432071
User 78022954
а какогото правильного варианта нет да?
А чем это не правильный вариант? rc.local cron?, написать сервис
06:03:35 ПП
User 60432071
User 56224773
правильно - это создать сервис для systemd
rc.local - это не правильно?
06:03:54 ПП
User 56224773
User 60432071
rc.local - это не правильно?
правильно, но модно ли?)
06:04:03 ПП
User 78022954
User 60432071
А чем это не правильный вариант? rc.local cron?, написать сервис
да не я не знаю, прсото спрашиваю какие варианты
06:04:07 ПП
User 60432071
User 56224773
правильно, но модно ли?)
имидж ни что, жажда всё?)
06:04:10 ПП
User 78022954
за ответы спасибо, буду читать про это все
06:04:18 ПП
User 56224773
пжлст
06:04:30 ПП
User 60432071
User 78022954
за ответы спасибо, буду читать про это все
Если читать, то просто скрипт и в rc.local исполнение его запихнуть
06:04:49 ПП
User 60432071
После чтения литературы написать свой сервис в systemd
06:05:17 ПП
User 60432071
Эволюция имхо будет выглядеть так
06:06:37 ПП
User 89292642
User 60432071
После чтения литературы написать свой сервис в systemd
Нынче нужно читать что-то кроме документации, чтобы написать юнит для systemd?
06:06:38 ПП
User 1312870
User 1312870
Ребята, подскажите, пожалуйста!

Делаем из под мака
docker run  -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.0.17

а потом делаем 
mysql -uroot -p123456 -h172.17.0.2 - запрашивает пароль, а дальше висит и не пускает
парнии!)
06:07:16 ПП
User 60432071
User 89292642
Нынче нужно читать что-то кроме документации, чтобы написать юнит для systemd?
А man != литература? 😆
06:07:31 ПП
06:07:47 ПП
User 60432071
Нет - не так или нет не литература? 😆
06:09:39 ПП
User 60432071
User 1312870
парнии!)
фиг знает O_o доступ то разрешён?
06:10:49 ПП
User 153030146
User 1312870
Ребята, подскажите, пожалуйста!

Делаем из под мака
docker run  -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.0.17

а потом делаем 
mysql -uroot -p123456 -h172.17.0.2 - запрашивает пароль, а дальше висит и не пускает
Курить, что в докерфайле
06:11:08 ПП
User 1312870
User 60432071
фиг знает O_o доступ то разрешён?
да порт слушается, открыт
пароль то спрашивает!
06:11:34 ПП
User 153030146
User 1312870
да порт слушается, открыт
пароль то спрашивает!
Это не значит, что у тебя есть гранты. Это значит, что приложение слушает.
06:11:57 ПП
User 1312870
из под docker exec -it bash -
с теми же паролями пускает
06:12:25 ПП
User 60432071
локаль и ремоут доступ
06:12:28 ПП
User 153030146
Запусти с --net=host
06:12:39 ПП
User 153030146
Если пустит, то проблема в грантах
06:14:28 ПП
User 1312870
Спасибо, будем пробовать
06:15:51 ПП
User 114122123
гранты там вот такие 

MariaDB [mysql]> select user,host from mysql.user;
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
06:16:13 ПП
User 1312870
и вроде должно пускать
06:17:10 ПП
User 60432071
2 человека - 1 задача? O_o
06:17:19 ПП
User 153030146
User 114122123
гранты там вот такие 

MariaDB [mysql]> select user,host from mysql.user;
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
Локалхоста нет
06:17:20 ПП
User 130218268
Народ, а кто пробовал kubernetes? Кто его локально разворачивал?
06:18:07 ПП
User 60432071
User 153030146
Локалхоста нет
С локала то его пускает..
06:18:11 ПП
User 1312870
User 60432071
2 человека - 1 задача? O_o
ага, вместе курим сидим
06:18:24 ПП
User 1312870
User 60432071
С локала то его пускает..
именно
06:18:42 ПП
User 60432071
А в логах mysql что ?
06:19:03 ПП
User 60432071
И подождать не пробовали? Или он так и висит на коннекте?
06:19:23 ПП
User 1312870
так и висит
06:19:30 ПП
User 1312870
mysql -h 172.17.0.2 -uvasya -p
Enter password:

vasya нет в грантах
06:19:34 ПП
User 1312870
тоже висит
06:20:11 ПП
User 60432071
Я не очень понял
06:20:12 ПП
User 60432071
а потом делаем 
mysql -uroot -p123456 -h172.17.0.2 - запрашивает пароль, а дальше висит и не пускает
06:20:25 ПП
User 60432071
Вот тут пишите что вписываете пароль в коннект, какой ещё пароль запрашивает?
06:21:22 ПП
User 1312870
ну это я приврал) там пароль в строке не указываем. просто флаг -p

а если указать просто висит и все
06:21:35 ПП
User 60432071
Укажите пароль при коннекте
06:21:48 ПП
User 60432071
Попробуйте добавить ip машины в коннекты
06:21:53 ПП
06:22:10 ПП
User 60432071
всмысле в mysql.user
06:25:54 ПП
06:31:43 ПП
User 50220893
что-то не припомню таких проблем, когда пускал марию в контейнере... Ща попробую запустить у себя
06:32:39 ПП
User 1312870
мария или нет не принципиально. mysql так же себя ведет
06:32:50 ПП
User 1312870
у нас два мака - две одинаковых проблемы
06:33:11 ПП
User 60432071
Проблема мака?
06:33:23 ПП
06:33:25 ПП
User 50220893
это важно
06:33:33 ПП
User 50220893
и как там запущен докер?
06:34:04 ПП
User 50220893
если это не бета, которая запускается на маке нативно, то айпишник должен быть не контейнера, а вм-ки, на которой крутится докер
06:34:33 ПП
User 1312870
мммм, на debian 7 проблем не воспроизводится
06:34:46 ПП
User 50220893
то линукс
06:34:59 ПП
User 50220893
там не нужно плясок с отдельной виртуальной машиной для докера
06:35:15 ПП
User 60432071
А докер в виртуалке запускается на маке?
06:35:21 ПП
06:35:30 ПП
User 50220893
если это не бета - да
06:35:52 ПП
User 50220893
https://blog.docker.com/2016/06/docker-mac-windows-public-beta/
blog.docker.com/2016/06/docker-mac-windows-public-beta
Back in March, we launched a private beta for a new ambitious project called Docker for Mac and Docker for Windows. Our major goal was to bring a native Docker experience to Mac and Windows, making it easier for developers to work with Docker in their own environments. And thousands agreed. Over thirty thousand applied in the first 24 hours. And by last week, we let in over seventy thousand. And now all you need to get started developing is Docker and a text editor. No more installing dependencies and runtimes just to debug applications. So today, we’re happy to announce that we’re opening up the beta for Docker for Mac and Windows to everyone. And along with the beta for Docker for Mac and Windows, you get the new Docker 1.12 release candidate. [Tweet "Docker for Mac and Windows…
06:36:00 ПП
User 1312870
у нас boot2docker
06:36:13 ПП
User 50220893
100% виртуалка
06:36:32 ПП
User 50220893
и на ней уже крутится докер
06:37:03 ПП
User 60432071
Я так понимаю подключение идёт так mac > vm > docker?
06:37:54 ПП
User 50220893
ну да
06:38:01 ПП
User 50220893
я бы нарисовал даже так
06:38:11 ПП
User 50220893
mac -> vm[docker]
06:38:56 ПП
User 1340580
У меня не бета, и без vm запускается.
06:39:19 ПП
User 1312870
у нас из под vm
06:40:07 ПП
User 50220893
User 1340580
У меня не бета, и без vm запускается.
и как он запускается?
06:40:39 ПП
06:40:41 ПП
User 50220893
http://www.docker.com/products/overview
06:40:49 ПП
User 50220893
они это уже не называют бетой
06:40:56 ПП
User 1340580
Ранее было boot2docker, да.
06:41:00 ПП
User 50220893
чууууть-чуть отстал
06:41:30 ПП
User 1340580
Бесит что он тормозит.
06:41:58 ПП
User 50220893
что тормозит? создание? Обработка команд? работа контейнеров?
06:42:16 ПП
User 1340580
Работа контейнера.
06:42:37 ПП
User 1340580
В сравнении если делать тоже самое на локальной машине.
06:42:44 ПП
User 50220893
я просто как настроил себе docker-machine в работе с параллельками, как-то на нативное решение особо не засматривался
06:43:04 ПП
User 1340580
Ну у меня нет параллелек :(
06:43:20 ПП
User 1340580
Да и докер для локальной разработки пока только.
06:44:11 ПП
User 60432071
User 1312870
у нас из под vm
а на маке ничего не занимает 3306?
06:46:10 ПП
User 1312870
мы же флаг -h указываем
06:46:13 ПП
User 1312870
какая разница?
06:46:44 ПП
User 60432071
Ну разницы ни какой, телнетом просто пробовали коннект на него?
06:46:57 ПП
User 50220893
на что?
06:46:58 ПП
User 60432071
Тут какая-та магия и я выдвигаю самые идиотские предположения
06:46:59 ПП
06:47:06 ПП
User 50220893
да нет никакой магии
06:47:24 ПП
User 50220893
докер запущен на вм-ке
06:47:32 ПП
06:47:36 ПП
User 50220893
клиент обращается к нему и видит там контейнеры
06:47:51 ПП
User 50220893
и то, что контейнер пробрасывает какой-то порт - он пробрасывает на ту вм-ку
06:48:05 ПП
User 50220893
а не на мак, на котором крутится эта самая вм-ка с докером
06:48:17 ПП
User 1312870
хмммм

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.0   

если запускать командой 
docker run -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mariadb:10.0.17

и затем 
mysql -uroot -h192.168.99.100 -p

то все работает норм))))
06:48:32 ПП
User 50220893
вот о том я и говорю
06:48:44 ПП
User 60432071
O_o а откуда ип тот вообще взялся
06:48:46 ПП
06:48:50 ПП
User 60432071
Другой который выше?
06:48:57 ПП
User 50220893
айпишник контейнера
06:49:00 ПП
User 50220893
из docker inspect
06:49:03 ПП
User 50220893
я так подозреваю
06:49:12 ПП
User 1312870
docker inspect показывает его как ип контейнера
06:49:14 ПП
06:49:22 ПП
User 60432071
Ясно.
06:49:40 ПП
User 1312870
ну таки я не понял. как сделать на маках по человечески)))
06:49:43 ПП
User 60432071
Пробросить все порты в виртуалке на ип контейнера O_o
06:49:50 ПП
User 1312870
таки жопа
06:50:21 ПП
User 50220893
попробовать установить тот докер, что for Mac
06:50:36 ПП
User 205692189
А в логах контейнера ничего нет?
06:51:00 ПП
User 205692189
Странного)
06:51:12 ПП
User 50220893
а что там хочется увидеть?)
06:51:21 ПП
User 50220893
всё вроде уже яснопонятно
06:51:39 ПП
User 60432071
Кстати, а почему б докер не запускать с другими портами сразу O_o
06:51:54 ПП
06:52:17 ПП
User 60432071
Ну всмысле, что б было что-то типа local-port и remote-port
06:52:36 ПП
User 50220893
я не понимаю
06:53:38 ПП
User 60432071
Ну есть же в нём targetport и port
06:53:39 ПП
User 50220893
что это значит? каждый контейнер имеет свой айпишник, нужное приложение в нём может использовать какой-то свой порт. Этот порт может быть проброшен на хостовую машину, на которой крутится докер
06:54:08 ПП
User 50220893
я совсем запутался
06:54:24 ПП
User 60432071
Спать пора наверное идти. 😞
06:54:26 ПП
User 50220893
тогда что такое в вашем вопросе local-port и remote-port?
06:55:17 ПП
User 60432071
У нас есть вм со своими портами, внутри крутится docker со своими портами - local-port(docker) - remote-port(vm)
06:55:42 ПП
User 60432071
Наверное я чего-то не понимаю в этой жизни :D
06:56:09 ПП
User 50220893
ну вы правильно схему описали
06:56:13 ПП
User 50220893
там такая инсталляция и есть
06:57:13 ПП
User 60432071
Так я и пишу, разве при запуске docker'a внутри вм нельзя указать, что вм нужно брать порт такой-то для такого-то ip-address'а приложения
06:57:41 ПП
User 60432071
Как-то запутанно написал :-\
06:57:47 ПП
User 50220893
внутри вм?
06:58:00 ПП
User 50220893
то есть вм должна сама по себе управлять хостом на котором запущена что ли?
06:58:07 ПП
User 50220893
попахивает побегом)
06:58:32 ПП
User 60432071
Эм... ну управлять не то слово, а слушать его и помогать ему.. восстание машин - вся фигня
06:58:38 ПП
User 50220893
в общем и целом-то можно. Гипервизором пробросить нужный порт из хоста в вм
06:58:54 ПП
User 50220893
но это должно работать не изнутри вм, разумеется
06:59:16 ПП
User 60432071
Ну.. для такого я так понимаю и нужен ansible или что-то типа того, что б помочь в этом.
07:00:20 ПП
User 60432071
Хотя можно просто сделать проброс портов с 10001 по 65000 для докера и докеру указывать порт запуска другой O_o
07:00:41 ПП
User 60432071
Самое просто и быстрое решение O_o
07:00:58 ПП
User 50220893
накостылять в любом случае можно много всего. А можно установить нативный докер и не костылять
07:01:19 ПП
07:02:13 ПП
User 60432071
😃 Ну тут изначально были условия не высказанны полностью :D
08:06:10 ПП
User 66455447
Коллеги, приветствую, помогите, пожалуйста, рецептом
Есть проект, я его сейчас заворачиваю в докер контейнеры вместе с docker compose. Как мне в связку поставить контейнер с нодой так, чтобы я мог билдить часть ноды в любой момент?
Контейнер с php-fpm не завершается после up, поэтому я могу сделать doc-compose exec php build для сборки php'шной части
Но контейнер с нодой завершается после doc-compose up, как быть, подскажите пожалуйста?
08:14:14 ПП
User 4627228
А там с Node.js приложением точно никаких проблем нет?
08:14:32 ПП
User 66455447
там нет приложения
08:14:42 ПП
User 66455447
нода нужно чтобы npm и bower дернуть
08:14:42 ПП
User 4627228
Не должно вылетать, если server.listen вызывается
08:15:29 ПП
User 4627228
А, т.е. Только для билд процесса?
08:15:40 ПП
08:16:30 ПП
User 66455447
но там в приложении есть ещё один сервис, и там вочер сокетов на ноде, но это уже следующий этап деплоя будет (это отдельный микросервис)
08:17:07 ПП
User 66455447
вобщем как мне заставить стандартный контейнер ноды не завершаться?
08:24:06 ПП
User 66455447
Подскажите ещё, насколько я понял бывают standalone контейнеры, которые нужны просто дёрнуть одну утилиту (например https://hub.docker.com/r/composer/composer/)

Подсккажите, как их можно использовать в связке compose? Например как можно из контейнера дернуть такой композер? Или только с хост машины можно через compose exec?
08:26:51 ПП
User 54466621
выложи все в папку на ружу и запускай npm из хозякой системы
08:27:41 ПП
User 66455447
так зачем тогда докер, если нужно ещё окружение вокург докер настроить? )
08:29:30 ПП
User 4627228
Тебе надо захолдить процесс, например через gulp.watch
08:30:04 ПП
User 66455447
может быть просто не нужно тогда ноду в compose добавлять? В билд скрипте просто дергать через docker run —rm -v .:/app node npm install?
08:32:49 ПП
User 4627228
Давай более глобально. Будет инсталл, дальше что - сборка? А если что-то изменилось - нужна будет пересборка?
08:33:35 ПП
User 4627228
При этом собранное должно быть передано РНР приложению?
08:34:29 ПП
User 4627228
Иначе можно просто npm install перед РНР)
08:35:26 ПП
User 63154584
User 78022954
подсоны, такой вопрос, ток хуями сразу не кормите
как сделать чтобы при старте хостовой системы контейнеры тоже запускались?
https://docs.docker.com/engine/admin/host_integration/
docs.docker.com/config/containers/start-containers-automatically
How to start containers automatically
08:37:59 ПП
User 66455447
сейчас собираю дев площадку. Сервис написан на php, с использованием фронтендовых пакетов (bower), и сборкой галпом (npm).
Билд - (псевдокод)
composer install
npm install
bower update
gulp build
php migrations

это всё я хочу разложить на сборку докером по контейнерам. Чтобы контейнер с нодой собирал фронтенд, а контейнер с php собирал php часть и обрабатывал запросы контейнера nginx
08:57:54 ПП
User 4627228
Таким образом Nginx сам определяет на какой URI отдать статику, собранную npm + bower, а на какой отдать его PHP-серверу?
08:58:29 ПП
User 66455447
нет, там всё в одну точку монтируется через volumes_from
08:58:38 ПП
User 4627228
Вариантов раздать статику два - volumes и HTTP
08:59:23 ПП
User 4627228
Тогда это не микросервисы :) Собрал бы уже в одном контейнере все
08:59:30 ПП
User 66455447
статику отдает nginx, а в контейнер всё через volumes попадает
08:59:45 ПП
User 4627228
Не пришлось бы извращаться с Volumes
08:59:47 ПП
User 66455447
я только начинаю переносить приложение в докер
09:00:01 ПП
User 4627228
Ты можешь несколько Dockerfile хранить
09:00:02 ПП
User 66455447
пока монолит рассекаю
09:00:44 ПП
User 4627228
Например Dockerfile для PHP и Dockerfile.assets для ноды - это в будущем
09:00:52 ПП
User 66455447
у меня нет цели сделать микросервисы с http, тут задача просто упаковать окружение в сборку
09:01:08 ПП
User 66455447
иначе сейчас все окружение вручную настраивается
09:01:32 ПП
User 4627228
А почему один контейнер не подходит?
09:01:47 ПП
User 4627228
Остальные же скрипты по сути только разовые задачи делают
09:02:41 ПП
User 4627228
Потом его разобьешь на два файла
09:02:42 ПП
User 66455447
а как с одним докер файлом? создать именно образ с настроеным окружением?
09:02:44 ПП
User 4627228
Кластеры
09:02:48 ПП
09:03:13 ПП
User 4627228
Потому что volumes это для БД больше или persistent storage (сертификаты и пр)
09:05:16 ПП
User 66455447
я как-то натыкался на крутой шаблон для проектов для докера, но сейчас чёт не могу найти
Вы можете порекомендавать какой-нибудь ман, желательно на рус, как идеологически должен compose строиться, я видимо не совсем понял для чего volumes нужгны
11:39:25 ПП
User 107378075
#whois я тихонько почитать
11:58:38 ПП
User 4627228
User 66455447
я как-то натыкался на крутой шаблон для проектов для докера, но сейчас чёт не могу найти
Вы можете порекомендавать какой-нибудь ман, желательно на рус, как идеологически должен compose строиться, я видимо не совсем понял для чего volumes нужгны
Тут вопрос даже близок к организации архитектуры самого приложения, можно углубиться в детали в @nodejs_ru - мы часто там такие вещи, как микросервисы обсуждаем.

Сам по себе docker-compose простой. Это скорее можно описать как механизм пакетного запуска/завершения и способ связывания (например, по хостам) контейнеров, например:

+ https://concourse.ci/docker-repository.html