Artem
Artem
Тебе уже выше кинули как общаются между собой сервисы и там мохер вообще хоть оно на го, хоть на пхп написано, все общаются между собой по имени сеовиса
Artem
Fqdn тут вообще не нужон
Artem
Если нет времени читать офф доку докера где все это расписано с примерами даже, то зачем кому то тратить на это время тут?)
a1eXei
Привет. А можно настроить сеть между контейнерами, чтобы например, 3 контейнера (db, app, nginx), и доступ к db был только у application'а, nginx о базе не вкурсе был)
про линк вкурсе, а в swarm возможно?
Александр
Александр
docker network create —driver=overlay имя
Александр
Как-то так, кажется
Andrey
Ещё - - attachable нужно добавить
Александр
a1eXei
Александр
Спасибо
RE
камрады. давно бодаюсь с одной бедой в докере, хотя может туплю гдето чисто концептуально.
centos 7 + firewalld + docker на сервере с белым IP.
если контейнер експозит порт сервиса своего, то этот порт доступен снаружи НЕСМОТРЯ на то, что нет никаких рулов для этого в firewalld.
это вроде как даже не баг а фича - мол iptables сам автоматически добавляет DNAT для этого.
RE
но как былин зарулить так, чтобы этот порт был доступен только для whitelist сетей, а не для public?
Anonymous
Nikolay
А я хотел задать свой тупой вопрос с конфигами. Но собственно и задам
Nikolay
mysql конфиги, они не применяются
RE
iptables глянь
ну всмысле - глянь? я то вижу что этот порт есть в цепочке DOCKER/
RE
или на эту цепочку создавать свой рул? какой бест практикс для этого?
не один же я таким страдаю
Anonymous
input закрой и открывай только нужным портам
RE
так а чем занимается firewalld тогда? в нем я открываю только то что надо и этого порта там ессно нет
RE
разве он не закрывает все по дефолту и открывает только что, что добавлено?
RE
оно ж поверх iptables по идее работает
Anonymous
да, эт прост фронт для iptables
Anonymous
iptables -L -n
Anonymous
покажи
RE
там дофига портянка. я точно говорю -что моего порта из докера там нету в chain Chain IN_public_allow
он есть только в DOCKER chain
# iptables -t nat -nL | grep 9090
MASQUERADE tcp — 172.18.0.4 172.18.0.4 tcp dpt:9090
DNAT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:9090 to:172.18.0.4:9090
# iptables -nL | grep 9090
ACCEPT tcp — 0.0.0.0/0 172.18.0.4 tcp dpt:9090
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:9090 ctstate NEW
RE
нe и туда его не я добавлял, а именно iptables
RE
и вот этот 9090 доступен на весь мир
хотя я этого не хотел
Anonymous
его туда докер добавил скорее всего
RE
точно так и есть)
Anonymous
—iptables=false
Anonymous
для dockerd добавь и наслаждайся
RE
это корректное поведение его
но я не пойму как с этим правильно бороться.
не один же я таким страдаю.
шptables false не рабтает как надо - если эту опцию включать то перестает работать експощинг портов) ну собсно потому что при этом шptables как раз НЕ добавляет свои рулы
RE
не понятно почему он добавляет их на 0.0.0.0/0
то есть на весь мир
и это НИКАК не конфигурится через firewalld
RE
неужели только руками REJECT делать на этот порт и потом ACCEPT длz нужных сорсов
Anonymous
https://docs.docker.com/engine/userguide/networking/default_network/container-communication/#communicating-to-the-outside-world
RE
спасибо конечно..
хотелось практического совета от уже бодавшегося с такой бедой)
а эту доку я изучал конечно..
Anonymous
если ты ее изучал то видел
$ iptables -I DOCKER -i ext_if ! -s 8.8.8.8 -j DROP
Anonymous
лучше всего сделать дроп на все и делать потом ваитлист на нужное
RE
бля ты прав.
RE
этого я как раз и не заметил
я только додумался сам до этого
а оно оказывается даже рекомендуется ими
RE
вот спасибо
RE
тольк блин вот жеш:
Docker will flush any pre-existing rules from the DOCKER and DOCKER-ISOLATION filter chains, if they exist. For this reason, any rules needed to further restrict access to containers need to be added after Docker has started.
RE
это что - какждый раз при рестарте докера рул обновлять свой?
Anonymous
почему ж, можно добавить в ExecStartPost
RE
блин
даж не знаю что это.. и пока гугл не помогает особо
RE
это какаято опция для сервисов чтоли
Anonymous
https://www.freedesktop.org/software/systemd/man/systemd.service.html
RE
less /lib/systemd/system/docker.service
нашел спасибо!
Bogdan
RE
хз если честно.. а решается в итоге как?
Demetrio⚡️
Bogdan
хз если честно.. а решается в итоге как?
У ufw ставиться drop на все неразрешенные вхождения, потом, allow на все переадресации. К переменной DOCKER_OPTS добавить --iptables=false и все на ура работает)
RE
у меня когда ставишь —iptables=false перестает работать проброс портов полностью
Bogdan
RE
ну и default DROP policy наверное можно и в frewallв включить по идее.
спасибо за хинт
Anonymous
@Zlokot по офф инструкции не вышло чтоль?
RE
ну там надо пилить скрипт для рулов фаера - вчера не дошел ход.. сегодня планируюэтим занятся как раз
Bogdan
Если кто то скажет как выдернуть настройки iptables - я скину сюда
Anonymous
Там нет никаких хитрых скриптов
Alex
@bednij_bohdan iptables -L > rules.txt
Alex
нет?
Bogdan
пурга какая то
Bogdan
там что то вроде iptables-restore или iptables-save
Bogdan
но все не то
Bogdan
как результат должно выйти bash скрипт для применения настроек к iptables
Sun
У меня только один вопрос: а зачем экспозить порты всех контейнеров? Пусть один наружу смотрит и всё через него идёт.
RE
а к кому вопрос то? в моем случае речь идет про один порт. но ситуаций когда надо много портов - тоже представить могу.
A
A
Nexus
Спасибо. Интересно звучит. Попробую.
A
RE
Nikolay
Добрый вечер. Организовываю у себя процесс разработки. Подняты сервер, база. Папка с исходными кодами монтируется.
Leonid Kalneus