🦠
Cmd
🦠
Оно должно быть единственным кто запущен внутри контейнера, с логом в stderr
🦠
Вообще, апач в 2017м году звучит очень олдскульно
🦠
По идеологическим причинам
🦠
Принцип единой ответственности
🦠
Смысл технологии в изоляции компонентов
🦠
Никто не мешает напилить все в один контейнер и ссш вывесить
🦠
Но эт вагрантоведение какое-то
Anton
Нифига не понимаю, как сделать так что бы докер не умирал, если у меня там тупо демон апача...
1) Подсмотреть команду, которой этого демона запускает инит-скрипт (или кто там его запускает сейчас) 2) Именно эту команду задать в докерфайле (можно с модификациями по вкусу) 3) Если апач по каким-то причинам умирает, то для этой проблемы не нужны никакие супервизоры, в самом докере есть restart policy
Anton
Почему?
По сути они как демоны работают, но демонизация происходит не внутри контейнера, её делает докер. А внутри контейнера всё выглядит так, будто целевой процесс (апач, например) запущен монопольно. Т.е. при "загрузке" системы вместо init стартует сразу апач.
Roki
Получается такая продвинутая консолька, которая все делает сама?
Roki
Как например nginx + php-fpm засунуть? Таким же образом?
Anonymous
Два контейнера
Anonymous
Два процесса имеет смысл поднимать, если один без другого не может работать. К примеру для service discovering
Misha Kulakovsky
Вроде простой вопрос, но столько сложностей. Есть сворм, в котором бежит веб-сервис. Без разницы, replicated или global режим. Снаружи коннектится клиент. В сервисе видно IP клиента как 10.255.х.х, что видимо является внутренним адресом шлюща overlay-сети. Вопрос: как сервису увидеть реальный IP?
Misha Kulakovsky
У меня два решения но оба костыльные 1) сделать внешний реверс прокси, вне сворма, в нем проставлять X-Real-IP 2) вроде как можно публиковать порт с параметром mode=host, тогда он будет биндиться только на текущей ноде, но на реальном интерфейсе, тогда по идее будет реальный IP. Но это накладывает ряд ограничений: нельзя пока использовать docker stack deploy с этим mode=host, придется отдельно делать docker service create/update со всеми опциями; ну и собственно лишаешься routing mesh-a, и сервис обязательно придется ставить в global-режим
Misha Kulakovsky
Короче, думаю кто сворм юзал, сталкивались с этой проблемой, как решали?
Igor
https://github.com/docker/docker/issues/25526 похоже ты нашел очередную больную тему
Igor
почитай там где ближе к концу есть ответы которые вроде помогают некоторым, но как я понял, проще бахнуть  nginx гдето и им реверсить на сервисы в сварме передавай доп хидер
Vladimir
А как вы обосновываете выбор между kubernates и docker?
Igor
имеешь ввиду между kubernates и docker swarm mode? потому что выбор между kubernetes и docker очевиден, нет кластера не нужен и kubernates
Ssi
Приветы. Хочу вывести в переменную в баше порт , который прокидывается в контейнер(с постгресом в моём случае). Если IP контейнера я легко достал, отформатировав вывод docker inspect, то с портом проблема.
Ssi
export POSTGRES_CONTAINER_IP=$(docker inspect —format '{{ .NetworkSettings.IPAddress }}' $(docker ps —format "{{ .ID }}" —filter 'name'="$POSTGRES_CONTAINER_NAME")) export POSTGRES_CONTAINER_PORT=$(docker inspect —format '{{ .NetworkSettings.Ports."5432/tcp".HostPort }}' $(docker ps —format "{{ .ID }}" —filter 'name'="$POSTGRES_CONTAINER_NAME"))
Ssi
собственно, ругается на 5432/tcp
🦠
то есть ты не знаешь какой порт будет?
🦠
открывай все порты
🦠
предлагаю прописать портянку из EXPOSE 1 ... EXPOSE 65535
🦠
гарантированно даст все порты
Oleg
докер умеет открывать рейндж портов
🦠
да-да, но портянка рулит)
Oleg
а задачу попонятнее еще раз можно? Ssi
Oleg
честно говоря не понял, что ты хочешь
Oleg
у докера кажется даже есть опция -P, которая маппит все порты
Oleg
без рейнджа
🦠
как бы звучит уже странно
🦠
запускать сервис в докере с рандомным портом
Ssi
на самом деле, я нашёл решение, но спасибо :)
Ssi
export POSTGRES_CONTAINER_PORT=$(docker inspect —format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}' $(docker ps —format "{{ .ID }}" —filter 'name'="$POSTGRES_CONTAINER_NAME"))
Ssi
вопрос был в том, как бы так пофильтровать, что вернулся порт
🦠
а что за задача стояла?
Ssi
вставить порт в переменную окружени
Ssi
чтоб потом из приложения его прочитать.
Ssi
сильно костыльно? )
🦠
если докеру сказать просто порт, мне кажется он сам сопоставит рандомный порт из контейнера на выставленный наружу
🦠
это более предсказуемо и более прозрачно для фаервола иметь зафиксированный порт
Nik
сильно костыльно? )
очень :) Обычно для этого используют сервис-дискавери. Consul, etcd, zookeeper... или польщуеются дискавери механизмами swarm/kubernetes, если они используются.
Igor
Привет всем, ни кто не сталкивался в диджитал оушене с такой проблемой докера: level=error msg="More than 100 concurrent queries from 172.25.0.3:58995" у меня множество контейнеров на одном хосте, и они все шлют много логов на удаленный сервер graylog, то есть у всех контейнеров выставлен лог драйвер glef как я понял меня не хочет обслуживать гугловый днс, потому что именно он стоит как дефолтный в /etc/resolv.conf Изза того что контенеры выжирают днс лимиты, сами сервисы внутри контейнеров начали испытывать проблемы, не могут достучатся например до внешних апи, потому что днс не ресолвится
dcptn
откуда такой вывод? что ты съел лимиты google dns?
Igor
а все разобрался, у меня консул юзается, сервисы бэкэнда в нем регаются, но при деплои когда их контейнеры убиваются, они не удаляют себя из консула, в итоге тот продолжает пытаться до них достутчатся, за месяцок активной разработки и кучи деплоев, в консуле скопилась толпа этих сервисов, и в итоге он по всем ним пытался долбить, в результате выжирал днс лимиты, так как докер не мог найти контейнер по имени и перенаравлял запрос в днс
Denis
Кто уже настраивал? https://blog.docker.com/2017/02/docker-secrets-management/
Nik
что это за спам?!
tohich
бляяя, я тебя умоляю, удали это говно сам
Nik
и себя заодно, друг.
Pavel
и себя заодно, друг.
...и убейся об стену.... тут про докер общаются, при чем тут эта жерня
Anton
ну ало народ, это же робот. покупается sim-коробка на 120 симок, покупается 120 симок на савеле или в украине - и вперед, спамить
Viacheslav
Меня все время интересовало, насколько успешен такой спам. Или люди настолько идиоты, что до сих пор ведутся?
🦠
ну че вы так сразу, мощный бизнес от инфобизнесменов или от бизнес-молодости
🦠
они вовремя подскочили, телеграммы начали устанавливать даже домохозяйки
🦠
сто обманутых старушек - один рубль!
Anton
Мощный бизнес это когда ты делаешь сервис прокси-рекламы - когда каждый send_message в телеграмме дописывает какую то рекламу прозрачно для бота
Denis
Сигнальте громче, если что)
🦠
Signal не сертфицирован ФСБ
🦠
слишком защищенный как и Threema
Pavel
Добрый день, коллеги. Не подскажите, имеется три контейнера запускающихся через docker-compose. Вопрос в их правильном бекапе. Правильно ли будет остановить каждый из них через docker-compose stop и забекапить каждый по отдельности через docker commit?
Oleg
всю систему чтоль хочешь бэкапить?
Oleg
правильнее волюмы создать внутрь в нужные папки\файлы
Oleg
и уже бэкапить волюмы если уж так надо
🦠
бэкап докера звучит странно
🦠
докер создан чтобы умирать)
🦠
ну если хочется извращений, то лучше всего сделать отдельный дата-сервис и бекапить его, вольюмы достаточно проблематично доставать
Pavel
Три контейнера: nginx, postgres, nbox фронтенд. Хочу что бы база была забекаплена как минимум...
🦠
бекапить нгинкс смысла нет
🦠
постгре можно бекапить снаружи
🦠
фронтенд максимум содержит фолдер с аплоадами, больше там бекапить нечего
Pavel
Nginx если конфиги не менял, то да, нет смысла бекапить. А зачем снаружи?