Fedor
или ss
Art
net-tools
Fedor
точно, спс
Fedor
Fedor
судя по всему с контейнером все ОК
[IPT] Dmitry
кто подскажет - в каком пакете netstat
можно всегда менеджер пакетов об этом спросить yum provides netstat
Fedor
ну или так :) apt-cache search net-tools
Fedor
что самое странное - после перезапуска на некоторое время трафик ходит:
Fedor
Fedor
в syslog срет таким: Jul 9 13:18:22 docker-apps kernel: [ 2297.605266] device vethf1475f5 entered promiscuous mode Jul 9 13:18:22 docker-apps kernel: [ 2297.605555] br-7af6635ddbc2: port 1(vethf1475f5) entered blocking state Jul 9 13:18:22 docker-apps kernel: [ 2297.605557] br-7af6635ddbc2: port 1(vethf1475f5) entered forwarding state Jul 9 13:18:22 docker-apps systemd-udevd[19973]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable. Jul 9 13:18:22 docker-apps systemd-udevd[19972]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable. Jul 9 13:18:22 docker-apps systemd-timesyncd[756]: Synchronized to time server 91.189.94.4:123 (ntp.ubuntu.com). Jul 9 13:18:22 docker-apps systemd-timesyncd[756]: Network configuration changed, trying to establish connection. Jul 9 13:18:22 docker-apps containerd[1181]: time="2019-07-09T13:18:22.849543750+02:00" level=info msg="shim containerd-shim started" address="/containerd-shim/moby/5b996525c5f8f5f532a45d73dfbebea4cb25e8d1daf05e358261578613d3e6fe/shim.sock" debug=false pid=20011 Jul 9 13:18:23 docker-apps dockerd[1191]: time="2019-07-09T13:18:23+02:00" level=warning msg="file does not exist: /proc/sys/net/ipv6/conf/all/disable_ipv6 : stat /proc/sys/net/ipv6/conf/all/disable_ipv6: no such file or directory Has IPv6 been disabled in this node's kernel?" Jul 9 13:18:23 docker-apps kernel: [ 2298.348896] eth0: renamed from vethbacc44d
AB 🇨🇾 🍉
Привет. У кого нибудь есть инфа какой лучше всего использовать log driver докера на больших объёмах данных (30ГБ в день). Gelf или json?
tfhx8
А в докере как то можно сделать такое: Нужно в определенном контейнере запустить скрипт на n порту и сделать так, чтобы этот порт был рабочим во вне? По быстрому, напримеру как то зайти внутрь контейнера и запустить скрипт
Эрнест
почему при заходе на 0.0.0.0:8010 ничего не показывается?
Alexander
потому что заходи на localhost:8000
AB 🇨🇾 🍉
8010 - это порт сервиса в контейнере, он мапится на порт 8000 хоста
tfhx8
docker ps выводить контейнер и такое?
tfhx8
0.0.0.0:4561->4561/tcp
tfhx8
захожу на site.com:4561 и ничего не получаю
tfhx8
хотя прорграмма внутри контейнера слушает 4561
Эрнест
я перехожу на порт 8010 он слушает 8000, который в контейнере, сам докер файл
Эрнест
Эрнест
expose менял на 8000 толку нету
George
экспоуз тебе не поможет
George
тебе надо 8010:4561 делать
George
или типа того
Эрнест
ок
Эрнест
refused и все
George
так все правильно
George
у тебя сервер на 127.0.0.1 слушает
George
повесь на 0.0.0.0
Эрнест
аааа
Эрнест
ща
Эрнест
урааа
Эрнест
спасибо, большое)))
Mikhail
всем привет, есть сервер 128 озу (из которых занято только 20), 12 ядер, все было окей до сегодняшнего дня, но теперь контейнеры не запускаются (хотя тяжесть контейнеров та же, что и была) контейнеры выходят с 137 и 0 кодами. порылся в инете, 137 ошибка это out of memory, но памяти на сервере достаточно, в чем может быть дело? 0 код выходит редко, но это тоже странно, этот контейнер должен запускать сервер и слушать определенный порт.
Mikhail
?
Sergey
у тебя лимиты по памяти на контейнер где то заданы?
Mikhail
у тебя лимиты по памяти на контейнер где то заданы?
нет, в докер-компоузах пусто, по дефолту насколько я помню анлим
Mikhail
мониторинг контейнеров что говорит
в каком плане? у меня есть свое решение для мониторинга в свзяке прометеус + графаана
Sergey
по таймингам ООМ есть соответствие?
Sergey
у меня такое было только с lxc и то потому что софт внутри lxc-контейнера упирался в границы самого контейнера(2гб)
George
ну, как бы да. памяти свободно
Mikhail
и что говорит?
я там отслеживаю только использование cpu & ram, поэтому ничего
Sergey
я там отслеживаю только использование cpu & ram, поэтому ничего
сделай метрики по памяти да проверь до какого лимита они прыгают перед ООМ
Maria
Всем привет У меня на работе есть bash скрипт, который проверяет контейнер как-то так >sudo docker inspect {container} |jq -r '.[0].NetworkSettings.Networks."{}".IPAddress' >curl -s -o /dev/null -w ''%{http_code}'' http://{IPAddress}:8080/link и curl иногда почему-то возвращает connection refused (сразу после поднятия контейнера, например). Из-за чего это может быть?
Mikhail
сделай метрики по памяти да проверь до какого лимита они прыгают перед ООМ
я чекал через htop использование ram, она поднималась на гиг и потом контейнеры умирали
Sergey
я чекал через htop использование ram, она поднималась на гиг и потом контейнеры умирали
да какой htop каждый конкретный процесс разбери в какой лимит он упирается
Mikhail
да какой htop каждый конкретный процесс разбери в какой лимит он упирается
каким образом? я чекаю стату через docker stats, но контейнер настолько быстро умирает, что я не успеваю чекнуть
Sergey
ты же сказал у тебя прометей
Sergey
как так мниторить докер без cadvisor
Maria
а как определяешь что "сразу после поднятия"
В баш скрипте сначала идет >docker-compose up -d Вроде бы, баш скрипт должен ждать, когда выполнится эта команда А потом идет запрос ip адреса и curl каждые 5 сек И каждые 5 сек curl может возвращать 000 код
Maria
и он всегда возвращает плохой код? или первое время
Первое время Но может и все 10 попыток зафейлить, это бывает, хоть и редко (слишком долго становится доступным?) Я поставила sleep перед проверкой, но думала, что что-то еще можно проверить
Maria
а приложение внутри может писать какой то лог ? запись что в такую то секунду приложение полностью загрузилось
Оно пишет, и да, приложение внутри контейнера еще по факту не готово, когда его пытаются пинговать. Я пыталась понять, что вообще происходит, не знала, что после запуска самого контейнера приложение по сути только начинает подниматься. Спасибо за помощь)
Sergey
Погугли Readiness Liveness probes
Тигран
Привет! Для локального окружения разворачиваю контейнеры с СУБД (их много) и приложение, которое подключается к ним. docker-compose 1го СУБД - https://dpaste.de/8Njh docker-compose 2го СУБД - https://dpaste.de/cuZn приложение - https://dpaste.de/Och8 Как видно из конфигов, каждый контейнер СУБД в своей bridge сети. В этих сетях находится и контейнер с приложением. В текущем виде оно не понимает где искать СУБД, Is the server running on host "farm" (192.168.96.2) and accepting↵ TCP/IP connections on port 48001? Если оставить одну СУБД, убрать вторую и ее сеть у приложения - приложение находит СУБД
Тигран
Каждый контейнер слушает свой порт 5820e99e13ef postgres:11.4 "docker-entrypoint.s…" 49 seconds ago Up 47 seconds 5432/tcp, 48002/tcp cc 0d9b60768208 postgres:11.4 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 5432/tcp, 48001/tcp farm
Тигран
пробросив порты на хост, обращаться к СУБД через порт хост машины решит вопрос, но как это сделать не через проброс портов в разных сетях?
Vadim
привет, возможно кто то подскажет docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"host=192.168.88.244\": executable file not found in $PATH": unknown. он ругается не на то что я запускаю а по сути на то чт оя передаю, если запускать без параметров то все стартует CMD pytest -s -v test.py --host=$host --port=$port --user=$user --password=$password чего не хватает для того что бы принять параметры
George
pytest в PATH? На нем есть флаг исполняемый (chmod +x)
Vadim
Энтрипойнт как выглядит ?
я его выпили , решил так попробовать вот так по идее будет работать ? ENTRYPOINT pytest -s -v test.py CMD --host=$host --port=$port --user=$user --password=$password но как мне показалось или где прочиталось что если энтрипоинт выполняется под башем или как то так, то cmd не выполняется добавил RUN chmod +x /usr/local/bin/pytest RUN export PATH=$PATH:/usr/local/bin/pytest
George
нет, ты не прав
George
алгоритм какой
George
ENTRYPOINT клеится с CMD и идет на выполнение
George
и тут возможны варианты в зависимости от того - как они заданы. Строкой или массивом
George
зе бест вариант - массивом (списком аргументов), т.к. тогда ты контролируешь более полно, что запускается
George
по умолчанию ENTRYPOINT = /bin/sh
Vadim
RUN export PATH=$PATH:/usr/local/bin/pytest не отработал почему, запустил с башем в path его нет