Andor
и я раскопал это всего за 10 минут!
Andor
а ты говоришь "композитор" :)
Andor
ну а мускуль конечно мудак
Anonymous
Всем привет. Подскажите, что значит -ti в $ docker exec -it ubuntu_bash bash (доку читал, но не совсем понимаю о чем они пишут)
Andor
--interactive , -i Keep STDIN open even if not attached
Andor
--tty , -t Allocate a pseudo-TTY
Anonymous
Спасибо) еще раз повторю, доку читал. Могли бы простыми словами рассказать, что это и о чем
Rainbow
https://stackoverflow.com/questions/30137135/confused-about-docker-t-option-to-allocate-a-pseudo-tty
Ильдар
подключить ввод-вывод контейнера к твоим стандартным вводу-выводу (монитору и клаве)
Игорь
"Команда run с флагом -it подключает интерактивный tty в контейнер. Теперь можно запускать сколько угодно много команд внутри." https://m.habr.com/ru/post/310460/
Rainbow
$ docker run --rm -i busybox sh echo 1 1 echo 2 2
Игорь
Да и прада работает.
George
/spam
Таймураз
/spam
Лучше зови админов напрямую
Pavel
добрый день Коллеги, есть вопрос по сетям.
Pavel
есть пара приложений в разных docker-composer файлах, с разными сетями
Pavel
есть прокси, для этих прложений, запускаемый через третий композер
Pavel
в прокси прописываю сеть и порты, стартую - все хорошо
Pavel
в композере приложения прописываю нужную сеть как external и тожетстартую
Pavel
после этого перестают работать порты прокси
Pavel
вопрос. как сделать правильную последовательность зстарта файлов и сетей чтобы прокси был в нескольких сетях и мог отдавать трафик предназначенный приложению?
Pavel
или я неправильно изначально все собираю*
Maxim
или я неправильно изначально все собираю*
Вы пробовали использовать в качестве реверсивного прокси сервера не nginx, а traefik.io?
Pavel
Maxim
вопрос. как сделать правильную последовательность зстарта файлов и сетей чтобы прокси был в нескольких сетях и мог отдавать трафик предназначенный приложению?
последовательность тут ни при чем, скорее всего у вас проблема в чем то другом о чем вы не сообщили, что то же вас заставило задуматься о последовательности так как что то не взлетело или взлетело но не так как вы того ожидали
Maxim
было в планах, но сейчас хотелось бы решить эту задачу
попробуйте traefik.io и вам не нужно будет думать о какой то последовательности запуска или остановки, пару строчек в консольке и вы счастливый обладатель traefik, вам больше не нужен будет аналгин или что вы там обычно принимаете от головной боли
Maxim
было в планах, но сейчас хотелось бы решить эту задачу
Для начала вы создаете для первого docker-compose.yml docker network create mynetwork1 затем вы наверное создаете вторую сеть для второго docker-compose.yml docker network create mynetwork2 обе сети вы указываете в yml файлах как external, угадал? затем вам нужен реверсивный прокси который будет принимать все запросы и проксировать их на нужные сервисы в зависимости например от "домена", например site.ru -> service1, a site2.ru -> service2, оба сервиса из разных docker-compose yml файлов, затем вы создаете третий docker-compose.yml в котором указываете созданные сети как external, но магия не происходит, верно? Или я не совсем верно понял вашу проблему?
Pavel
1. для начала я взял одну сеть одного композера и прокси
Pavel
в композере приложения следующее
Pavel
expose: - 9090 и дефолтная сеть
Pavel
контейнер запускается и есть прометиус на дефолтной сети с портом 9090
Pavel
prometheus_default bridge local
Pavel
[jnz yfdthyj e;t nen ytghfdbkmyj b,j ye;ty yt ,hbl; f kjrfk
Pavel
хотя наверно уже тут неправильно, нужен не бридж а локал
Pavel
далее композер прокси
Pavel
networks: prometheus: external: name: prometheus_default ports: - "9090:9090" networks: - prometheus
Pavel
стоп, работает
Pavel
поменял в композере external: true на external: name: prometheus_default
Maxim
поменял в композере external: true на external: name: prometheus_default
вы пытаетесь запустить только prometheus или мониторинг с grafana?
Maxim
спасибо за помощь и совет
советов еще не было ) рад что мои вопросы помогли вам найти ответы
Maxim
поменял в композере external: true на external: name: prometheus_default
обычно prometheus используют для сбора данных и последующего отображения в каких нибудь цветных красивых графиках
Pavel
вы пытаетесь запустить только prometheus или мониторинг с grafana?
только прометиус, дальше буду накручивать по нарастающей мне надо было понять принцип, как соединить сети, для этого взял минимум
Maxim
только прометиус, дальше буду накручивать по нарастающей мне надо было понять принцип, как соединить сети, для этого взял минимум
надеюсь вы разобрались как соединить сети, наверное я не правильно понял задачу которую вы пытались решить и про сети у меня получилось скомканное объяснение
Pavel
не, все уложилось, ибо паралельно читал интернеты ))
Maxim
не, все уложилось, ибо паралельно читал интернеты ))
последний вопрос, больше не буду надоедать, в качестве реверствного прокси вы используете nginx?
Pavel
это не надоедание, да и мы тут для общения, спрашивайте ) да - nginx
Maxim
это не надоедание, да и мы тут для общения, спрашивайте ) да - nginx
и как вам nginx в качестве реверсивного прокси?
George
Переметнулись на темную сторону ? Расскажите, что же изменилось в Вашем отношении к трефик?
Pavel
и как вам nginx в качестве реверсивного прокси?
привычно, хотя я не самый лучший специалист в нем, при прочих равных в нем понятно где искать свои ошибки, а не знакомый продукт требует вдумчивого подхода к изучению
George
На самом деле я бы ещё 10 раз подумал, стоит ли отказываться от host network в docker: нет гемора с бриджами, латентность сети ниже. Нет идиотский правил в iptables
George
traefik.io у вас займет минут 10-15 для замены вашего nginx на более удобный реверсивный прокси сервер
А ещё, минутка рекламы, трефик из коробки умеет получать ssl сертификаты через acme. Если это, конечно, нужно
Pavel
В таком режиме как сейчас, поддержу, лучше определять сети в docker-compose как внешние
даже если сеть тогоже прометиуса общается с внешним миром только через прокси?
George
Но поверьте - лучше прометеус запустить в хост моуд как 127.0.0.1:9090, чем иметь весь этот секс с сетями. Для dev-стенда - может и не критично, но если захочется сделать хотя бы stage... Ну, вы поняли
Maxim
даже если сеть тогоже прометиуса общается с внешним миром только через прокси?
там скорее сеть выступает в роли проводника, но в целом вы на верном пути, от nginx не отказывайтесь, там связка: traefik -> nginx -> prometheus -> nginx -> traefik - это путешествие запроса от брузера и обратно взад-назад
Maxim
Эм, nginx тут лишний :-)
как скажете, пусть будет лишний, можно и без traefik так же обойтись, порты еще никто не отменял, так что фффтопку эти всякие новомодные штуки
George
чуть терминологии, хост моде это - ?
Когда контейнер работает в сетевом стеке хостовой операционной системы. Без этих бриджов и прочей ереси
George
Минус - нужно в конфигурации приложения микроменеджить порты. Не получится наклепать несколько инстансов из одного образа, не разнеся их конфигом по разным портам.
George
Фишка в том, что бриджи вроде как позволяют более гранулярно развести разные приложения в докерах, чтобы они по сети друг в друга не ходили. Но эта "защита" весьма условная.
Pavel
ага, и тогда прокси перенаправляет не в котейнер а на петлю
Maxim
Это тупо *быстрее*
сейчас прям как на американских горках захватило дух от скорости, может есть пример какой нибудь чтоб показать коллегам?
George
ага, и тогда прокси перенаправляет не в котейнер а на петлю
Ну, например. Но никто не мешает прометеус и на внешнем ip запустить )
George
сейчас прям как на американских горках захватило дух от скорости, может есть пример какой нибудь чтоб показать коллегам?
Я статей не видел на эту тему, но это логично, т.к. при создании бриджа и запуска контейнера через него, то докер создаёт 100500 правил iptables (NAT/masquerade). И это явно не может быть быстрее, чем host mode. Ещё я могу сказать, что я по графикам в графане видел все это. И загрузка процессора, и rps, и кол-во tcp syn/wait
George
Ну, вы поняли