stanislavv
работа лытдыбр контейнеры В связи с сетевыми проблемами у докера, которые не решаются годами, пытаюсь найти хоть какой-то обходной путь. host networking — не вариант, требуется, чтобы контейнеры были доступны только в локалке, откуда при необходимости их выпустит nginx, обернув в tls auth.
Пока сильно мешают две проблемы:
1) при использовании docker-proxy постоянные соединения к вненшим сервисам с точки зрения внутри контейнера и с точки зрения того сервиса могут быть в разном состоянии. Чаще всего — контейнер считает, что оно всё ещё открыто, а на самом деле — уже закрылось. Настройки keepalive тут не помогают, товарищ находил открытый баг 4-летней давности.
2) при запрещении docker-proxy с внешними сервисами всё хорошо, проблемы начинаются, когда контейнер хочет обратиться к публичному интерфейсу другого контейнера. И вот тут я тупо не пойму, в чём проблема, так как и маршрут есть и докеровские правила nat...

А вообще, такое ощущение, что есть следующее:
1) docker на одной машине — чисто для разработки, может быть для вывода сервиса на "отъебись"
2) docker swarm — недокластер, в котором так же есть многолетние сетевые баги, которые либо обходятся странными методами, либо не обходятся вообще, так как проявляются только под большой нагрузкой, для мелких инстансов на несколько узлов и мелкую нагрузку.
3) кубернетес — нечто, которое вообще-то не предназначено для мелких установок у себя, но как-то ставится.

Промежуточного между 2 и 3 — похоже, не существует и следующий шаг будет таки в сторону 3), но хз когда, тут даже тестовый кластер уже разобрали...
OCTAGRAM
Delphi ada контейнеры В обоих языках появились конструкции для удобного перебора коллекций. for-in-do в Делфи и for-of-loop в языке Ада. Но в языке Ада можно и нужно возвращать ссылочный тип, и под такой перебор не нужно объявлять переменную, а в Делфи — нужно, и нужно именно затем, что оно всё будет при переборе постоянно копироваться и уничтожаться, хоть там какой развесистый record внутри. Но зато при переборе стандартного System.Generics.Collections.TDictionary в Делфи перебираем пары ключ-значение, а при переборе стандартного Ada.Containers.Hashed_Maps — только сами значения.
Balancer
MySQL lxc mariadb docker контейнеры Пришёл к идее, что, если удастся нормально настроить под MariaDB произвольную мастер-мастер репликацию индивидуальных БД (т.е. разные БД — на разные сервера), то надо нафиг выносить MariaDB из контейнеров («в каждом своя») на хост. Достало оверхедить памятью :)
Balancer
weave lxc docker контейнеры Отлично! weave позволяет на лету связывать в одну сеть уже запущенные контейнеры Docker и LXC. Жаль только, что не позволяет автоматически сменить точку входа в сеть, если исходная отваливается. Можно, конечно, скриптом попробовать оптимизировать, типа, если один внешний хост перестаёт пинговаться, то переключаемся на резервный... Может, есть более прямая альтернатива?
Balancer
nginx php-fpm docker контейнеры Уф. Решил задачу автоматического конфигурирования Docker-связки nginx/host + nginx/container + php-fpm/container. Т.е. чтобы одним скриптом запуска всё соединялось в работающую конфигурацию. Пока всё костыльно, без прав доступа и т.п. Но не придётся придумывать статические порты доступа для контейнеров или вручную прописывать проксирование на nginx-хосте.
Balancer
lxc docker контейнеры Эти контейнеры меня доведут :D Поднял в контейнере MariaDB, настроил репликацию с удалённого сервера, дня три она крутилась, а сегодня сервер с контейнером перезагрузил. Лезу в MySQL — нет ответа. Хм. Начинаю ковыряться в Docker образах. В docker ps пусто. В docker ps -a вижу два container_id с образом mariadb. Запускаю один — фигушки. Другой — стартует. Потом становится понятно, что первый стартовал просто как mysql-клиент ко второму. Ладно, лезу в контейнер — репликации нет, головной сервер не настроен o_O. Лезу в /var/lib/mysql — там файлы от 01 декабря O_o. Потом смотрю, ещё и объём базы вместо 15Гб что-то около 300Мб...

В общем, ковырялся минут 40 в общей сложности, даже find'ом искал по всему диску БД по имени... Пока не догадался в lxc-ls глянуть и увидеть, что я базу-то в LXC-контейнере поднимал :D Как раз, специально, ибо сложная MySQL-конфигурация тянет не на приложение, а комплекс приложений. Придётся, походу, всё строго документировать, а то запутаться в десятках разнотипных контейнеров на полудюжине серверов как делать нефиг...
Balancer
сети weave docker контейнеры Нашёл отличный рецепт, как присоединить weave к уже запущенному LXC-контейнеру: github.com
weave-lxc attach 10.0.1.234/8 container-name
и готово, контейнер включён в weave-сеть. То, чего мне так не хватало для начала практического использования weave. Docker — это прекрасно, но основная нагрузка всё равно пока на LXC. А теперь их можно объединить.

Одна беда, почему-то weave вообще не работает на двух основных серверах (Ubuntu 12.04 LTS и Gentoo). Хотя на одном из них точно работала раньше... В настройках роутинга, вроде, всё нормально. Не понимаю...

Напомню, что weave — это такая фигня, что легко ставится и позволяет просто, удобно и автоматизированно соединить в одну сквозную виртуальную сеть Docker-контейнеры в разных физических подсетях. В т.ч. связь идёт между закрытыми за NAT машинами при наличии общего открытого прокси — github.com

Balancer
сети docker контейнеры Отличный инструмент для связывания контейнеров Docker в разных сетях.
github.com
Качаем небольшой скрипт и запускаем контейнеры через него, указывая требуемый IP контейнера. Качаем скрипт и запускаем через него контейнеры на второй машине, указав хост первой. Всё, наши контейнеры видя друг друга по сети, даже находясь в разных сетях, даже если вторая машина за NAT. Очень просто и удобно!