Evgeny
R-omk
Evgeny
engelbart
А у registry:2 есть где то список команд? Как например list посмотреть?
Aleksey
engelbart
спасибо! похоже что близко
engelbart
тока не работает ;(
engelbart
А какой самый простой путь (не беря во внимания различные консулы и прочее) узнать ип запущенного контейнкера по его имени?
У меня вот есть на хост машине nginx , который проксирует запросы внутрь на пару-тройку контейнеров.
Иногда они при рестарте меняют ипы, и нужно перенаправлять nginx.
какая тут может быть автоматизация попроще?
Evgeny
резолв ип по имени нгинксом - что проше?
engelbart
а кто resolver?
Evgeny
докер
Evgeny
у него ж есть днс
engelbart
host name 172.17.42.1
не отвечает
engelbart
надо настраивать как то?
Evgeny
у вас оверлей сеть?
engelbart
Эм, у меня то что по дефолту, не знаю термина, NAT и iptables где
Evgeny
Тогда чтонить типа https://hub.docker.com/r/nordluf/swarm-discovery/ можно попробовать
engelbart
мм, сходу не выглядит проще консула.
Aleksey
Aleksey
engelbart
Да не не, с ним всё нормально. Это уже было у меня.
Просто понимаете задача примитивная, там маленький дроплетик. крутится на нём буквально два микросервиса.
engelbart
А просто что б как бы они рестартится могли, придется консул, регистратор, всех этих парней тащить.
Aleksey
какая разница - с nginx конетйнера резолвится backend как бэкенд?
Aleksey
ну тупо добавьте параметр reolver в nginx и таймат поставьте - посмотрите - будет работfть или нет
engelbart
nginx на хосте, не в контейнере. он там всякую статику еще раздает.
Aleksey
engelbart
Если честно я не понял про backend. Мне собственно, да, нужен какой нить резолвер что б сказал хостовому nginx , что service1 это 172.42.1.1
Aleksey
а статику волюмом
engelbart
засунуть и потом —link юзать?
Aleksey
например
engelbart
вариант конечно, но какой то не такой
engelbart
хотя разница наверное неизмерима
Aleksey
ну это уже про шашечки или ехать разговор :)
engelbart
да не, я понимаю
Aleksey
как разница - что на хосте, что в конетйнере - в конечно счете - это процесс
engelbart
этот метод приходил в голову тоже, такой прям hardwired
Aleksey
нет, просто надо понять докер - менеджер процессов
engelbart
дык с этим какие проблемы
engelbart
но вот сделали бы интерфейс что б я как в консуле мог nslookup глянуть ип по имени
engelbart
и прям счастье
engelbart
а то придется или линки городить, и рестартовать всё в случае третьего микросервиса
Evgeny
Ну docker inspect тогда
engelbart
или обертку над docker inspect в днс заворачивать
engelbart
и в resolver nginx пихать
Aleksey
docker-compose заведите и забудьте о всех этих граблях :))
Aleksey
и биндите nginx на 80 порт хоста
engelbart
да, вариант тоже
Aleksey
у меня на самом деле именна таже схема,чт вы описали - nginx на хосте, но у меня не толкьо докер, а вот чтобы резолвится юзаю консул. Если все настолько просто, как говорит компоуз и бинд на 80 порт закроет все вопросы
Aleksey
ввопрос то у вас по сути про "идеологию" докера как сделать правильно
engelbart
вопрос у меня был с надеждой что этот встроенный днс сделали уж (обертку над инспект)
engelbart
я б тогда лучше час потратил и дроплет обновил, а то он там давненько трудится.
engelbart
Консул всем хорош, я его не критикую, просто так сказать шаг в сторону.
Мне в схеме с консулом не нравится еще и необходимость регистратора. Прямо два лишних колеса.
Aleksey
вопрос у меня был с надеждой что этот встроенный днс сделали уж (обертку над инспект)
консул, кстати, тоже не днс, мы как днс его не юзаем. Точнее юзаем, но у нас перед ним прослойка unbound и сами разработчики консула про это говорят. Сомневаюсь, что реализация встроенного в докер днс лучше чем в консул. Точно так же сомневаюсь, что днс в докере продакшен рейди. По сути днс в докере - это реализация сервис дискавери и ждать от него магии не стоит.
engelbart
да какая там магия, там будет 20 запросов в час
engelbart
за память боремся, жаль лишних этих колес
Aleksey
Ну и забейте - тупо docker-compose и resolver в конфиге nginx - мы так на хакатонах всегда делаем :)
engelbart
Да, пожалуй. У меня ведь так и есть посути. только композер ручной
Vladimir
Всем привет. У меня есть image в котором установлены ruby, rails и все гемы. При добавлении нового гема мне приходится пересобирать контейнер. Есть другой способ обновить image не пересобирая его
Alexey
знатоки скажут, что надо это делать в отдельном котейнере, а в контейнер с приложением забирать уже собранные завипсимости из этого контейнера :)
Vladimir
то есть сами гемы мы ставим в отдельный контейнер?
Roman
https://docs.docker.com/engine/reference/commandline/commit/
Roman
но вообще я бы так не делал
Roman
Vladimir Tsymbal у себя поставит свои джемы, степа иванов вторые, вася третьи.
Едиство среди будет если все нужные джемы описаны в докерфайле
Vladimir
Vladimir
при наличии кеша и добавлении гема отдельным раном - это сделается моментально
Vladimir
а на продакшен сольётся всё в один
Vladimir
Спасибо, попробую
Vladimir
Roman, мне не хочется при добавлении гема пересобирать образ, это занимает время
yopp
yopp
1) vendor/bundle собирать отдельно и складывать его через ADD FILE
2) собирать зависимости в родительском контейнере
yopp
первый способ очень плохой
Vladimir
yopp
так что лучше пересобирать контейнеры
yopp
yopp
монитруешь кеш в контейнер, делаешь bundle update, радуешься жизни
yopp
тьфу
yopp
ну выпоняли
Vladimir
Ок, спасибо за советы