Misha Kulakovsky
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.0.6 004ffacee4c3
Misha Kulakovsky
докер же сам предоставляет резолв днс в оверлей-сети
Nik
ну round-robin же должен проявляться при подключении к контейнерам извне, разве нет?
Misha Kulakovsky
Причем ситуация такая: на нодах в интерфейсе 10.0.0.3 на одной и 10.0.0.4 на другой, но на обеих еще алиас 10.0.0.2 — он и резолвится
Я так понимаю это как раз фича, внутренний лоад-балансинг без раунд-робин. Наверно нужно лукапить какое-то другое имя, но какое — не понятно.
Nik
тогда давайте на хосте сделаем tcpdump -i eth0 -n | grep ICMP
Nik
и посмотрим, уходят ли ответы равномерно на 10.0.0.3 и 10.0.0.4
Nik
если да - вот он ваш, round-robin
Misha Kulakovsky
Наверно уходят, но меня не это интересует. Мне нужно именно получить все инстансы внутри сервиса test
Misha Kulakovsky
Для того чтобы они находили друг друга и коннектились напрямую. В сервисе так будет устроен внутренний discovery
Misha Kulakovsky
ну, типа p2p сеть
Misha Kulakovsky
ну и для этого мне раунд-робин именно на уровне днс нужен, чтобы все А-записи получить
Nik
исходя из того, что я прочитал про обновлуние последнее, у них там есть несколько драйверов для service discovery, если вы про это. Они свой допилили, есть consul, etcd....
Nik
нужно посмтореть что у вас используется и получать данные из этого источника, по идее. Сам я это не делал со свормом
Nik
как найдете ответ, напишите в группу, интересно будет узнать.
Nik
https://docs.docker.com/swarm/discovery/#using-a-hosted-discovery-key-store
Misha Kulakovsky
https://docs.docker.com/engine/swarm/networking/#use-dns-round-robin-for-a-service вот кажется то что мне нужно
Anonymous
Misha Kulakovsky
В общем, я так понимаю, через конфиг это сделать пока нельзя, но скоро можно будет
https://github.com/docker/docker/issues/31096
https://github.com/docker/docker/pull/31112
Misha Kulakovsky
Нашел решение: query the DNS using a special query <tasks.SERVICE-NAME> to find the IP addresses of all the containers
ill-ya
А управление докером, чтобы веб сервис сделать лучше наверно питона решения нет?
ill-ya
Клиент приходит, регистрируется, стартует его докер
ill-ya
Php, nodejs, go?
ill-ya
Php и nodejs я знаю
Anonymous
Илья, ты чего хочешь то?
Anonymous
Php и nodejs я знаю
Пхп решает почти те же задачи, которые решаются питоном. Только не умеет быть демоном.
И про управление не ясно нифиаг чо ты хочешь и зачем докеры стартить?
ill-ya
Человек хочет демо сайт: я запускаю для него контейнеры(nginx и php и добавляю в nginx-proxy поддомен) -> профит, стоит морочиться с питоном?
ill-ya
Поидее и php хватит?
Anonymous
Зачем для сайта делать контейнер?
ill-ya
Для 200 сайтов
ill-ya
Одинаковых
ill-ya
Жаль что бд прийдется держать одну для каждого(percona инстанс 200мег отжирает), может кто-то знает а можно сократить?
Nik
Для 200 сайтов
а чем вас Ансибл (на питоне, кстати) не устраивает? там есть готовый модуль для деплоя контейнеров
ill-ya
Ансибл гляну
ill-ya
Думал он не докер, а вагрант ориентированный
🦠
Забивание шурупов молотком, использовать докер для колокейшена эт сильно
Anton
нормчег) сееьюрнг) только не факт что 200инстансов ндэмнкс это хорошо)
Anonymous
Anonymous
Я не понимаю нафига контейнеризация в такой задаче нужна? Оверинжениринг
нꙺ
сап котаны, существует ли возможность перезапускать контейнер с включением/отключением прокидывания портов наружу? без пересоздания самого контейнера?
🦠
можно просто свет выключать, чтобы создать контейнер шредингера
🦠
это не виртуализация, просто нечего перезапускать внутри, контейнер создается вместе с сеткой, если сетку выключить...
🦠
если хочется просто повыключать и включать сеть - docker network connect/disconnect
Sander
Всем привет
Sander
каждый раз я когда делаю деплой, у меня новый image появляется, как избавиться от этой проблемы?
```
site.ee latest fdbc63dd6e1a 2 minutes ago 406 MB
site.ee <none> 1111db298010 8 minutes ago 406 MB
site.ee <none> b3ea5cf5aa8f 11 minutes ago 406 MB
site.ee <none> e19a9f26682e 19 minutes ago 406 MB
site.ee <none> 5905f2108fa4 25 minutes ago 406 MB
site.ee <none> 3b5fc156e93c 32 minutes ago 406 MB
site.ee <none> dc8d38e5553e 36 minutes ago 406 MB
site.ee <none> 3c768371e027 55 minutes ago 406 MB
site.ee <none> 32dbb1b5c6fe About an hour ago 406 MB
site.ee <none> 73e958eb5781 About an hour ago 406 MB
site.ee <none> d1ba27c9a9bc 2 hours ago 356 MB
🦠
Если ты собираешь образ на каждый деплой
🦠
То придется по крону чистить, увы и ах
🦠
docker rmi $(docker images ls -q)
🦠
Докер пока не умеет за собой убираться
🦠
Собрал ci/cd на базе гитлаба, полмесяца отработало, засрало весь диск, так что зайти нельзя было
🦠
Поставил в час ночи уборку, с тех пор нормально, с утра раз пересобирает образ, можно по фильтру исключить конечно dangling=true
нꙺ
посмотреть сколько ресурсов сожрал докер
docker system df
почистить неиспользуемое
docker system prune
🦠
Спасибо
🦠
Кстати прун чет не удалил оригинальные образа
🦠
docker image rm $(docker image ls -qa) убил всех
Vlad
нꙺ
ребятки, поделитесь кто-нибудь примером docker-compose.yml который вот прям несколько образов билдит из разных папок и запускает с них контейнеры
заранее благодарен
Sander
есть ли какой-то нормальный способ чистить мусор images?
Sander
я использую ansible + docker
🦠
товарищи сверху посоветовали хороший способ
🦠
прибивающий стартанувшие контейнеры
🦠
docker system prune -af
Sander
смысле прибивающий стартанувшие контейнеры?
🦠
Если что-то в этот момент работало - будет остановлено
Sander
я не понимаю, зачем что-то останавливать, надо всего лишь чистить старые images
нꙺ
docker image prune ?
🦠
docker image ls -f "dangling=true" -qa
🦠
делает тоже самое
нꙺ
только что проверил - нет
Anton
круто, а я скрипты писал для этого
Sander
docker system prune -qa, супер но есть одна проблема.
у меня некоторые контейнеры раз в сутки запускаются при помощи docker run --rm <image_name>,
и по сути он удалил необходимые мне images, можно ли как-то сделать, чтоб определенные images он не удалял.
нꙺ
docker image rm $(docker images -a | grep none | grep -v имя_твоего_имейджа |awk '{print $3}')
должно сработать, не проверял
нꙺ
а, сорян, не правильно вопрос понял
Mentat
А docker system это с какой версии?
нꙺ
с предпоследней, по-моему
нꙺ
@sander92 опиши конкретный кейс, что тебе надо сделать?
Sander
1) я когда делаю pull image, он создает мне каждый раз новую копию изображения.
```
```
site.ee latest fdbc63dd6e1a 2 minutes ago 406 MB
site.ee <none> 1111db298010 8 minutes ago 406 MB
site.ee <none> b3ea5cf5aa8f 11 minutes ago 406 MB
```
2) я думал он текущий просто обновит и все, но не будет мне каждый раз новое изображение создавать.
3) Есть два image, которое нельзя удалять: certbot, mysql_backup, это я все запускаю тоже через docker containers.
```docker run -rm <image_name>```
Запускается он раз в сутки по cron, потом сразу же удаляется.
Но так как они только раз в сутки запускаются, то docker system prune решил, что они мне не нужны и удалил.