Pomoc Problemy sieciowe container station

blade2206

Nowy użytkownik
Noobie
12 Październik 2022
5
0
1
33
QNAP
TS-x53
Ethernet
1 GbE
Witam,

Mam porblem z komunikacją pomiędzy kontenerami znajdującymi się na qnapie. Mogę bezproblemowo łączyć się z kontenerami poprzez otwarte porty (-p) spoza qnapa jak i w ramach jednego docker compose (ta sama sieć) - ale nie jestem w stanie połączyć się z innych docker-compose (różne sieci). Próbowałęm prez adres ip qnapa (192.168.0.123) przez adres ip konkretnego kontenera (172.29.44.3) ale nic nie pomaga (połączenie zawisa i po chwili rzuca timeoutem). Czy ktoś znający się na sieciach byłby w stanie mi pomóc - naprowadzić mnie na właściwy tor? Spędziłem całą noc próbując znaleźć rozwiązanie problemu - ale nie znalazłem nic - był nawet problem żeby znaleźć w ogóle osoby które mają taki sam problem jak mój. Ponieższy setup działą idalnie na docker desktop (windows) ale z jakiegoś powodu nie działa na moim qnapie. Nie chcę łączyć kontenerów w jedną sieć - bo chcę ograniczyć komunikację tylo do otwartych portów i nie chce tworzyć specjalnej sieci do któej będę musiałwrzucić wiekszość kontenerów.

Wrzucam poniżej screen z network & virtual switches qnapa który obrazuje problem. Czerwona przerywana linia nie działa - wszystko inne działa w porządku.

Ogromna prośba o pomoc.

Jedyny temat jaki znalazłem który odzwierciedla mój problem jest tutaj Communicating between 'bare' container and docker-compose container - QNAP NAS Community Forum - ale jest tam tylko problem - bez rozwiązania.

qnap_problem.png
 
Nie chcę łączyć kontenerów w jedną sieć - bo chcę ograniczyć komunikację tylo do otwartych portów i nie chce tworzyć specjalnej sieci do któej będę musiałwrzucić wiekszość kontenerów.
Są na różnych podsieciach więc nie rozmawiają ze sobą. W efekcie końcowym pewnie musiałbyś je spiąć jednym wirtualnym switchem i ustawić statyczne routingi. Wyjdzie na to samo co jeśli ustawisz je w bridgu w tej samej podsieci tylko Ty dołożyłeś sobie problemu.
Nie wiem, strata czasu moim zdaniem.
 
Wow - dzięki ogromne za szybką odpowiedź. W sumie ja sam tego nie konfigurowałem - docker compose na qnap tak konfiguruje te sieci. Trochę noga jestem z sieci - ale dlaczego na windowsie taki wyczyn mi się udał? - docker desktop jakoś inaczej te sieci konfiguruje - nie wiem szczerze jak tam sprawdzić jak to jest skonfigurowane. Ogólnie przecież próbuje rozmawiać z zewnętrzym ip (192.168.0.123) który już odpowiedni port za pomocą routingu powinien skierować na odpowiednią podsieć (myle się?).

Jak sugerujesz żeby to skonfigurować? Stworzyć sobie w dockerze sieć typu bridge - której bym używał we wszystkich moich docker compose w kontenerach które powinny mieć możliwość rozmawiania ze sobą?
Połączono posty:

Oczywiście zewnętrzym ip mam na myśli zewnętrzym względem tych podsieci - bo zdaje sobie sprawe że jest to wewnętrzy adres mojej sieci lokalnej. Dlaczego udaje mi się taki myk - że z pc z qnapem mogę sobie gadać - fioletowa i żółta linia - a z wewnątrz qnap używając tego zewnętrznego adresu już ten routing nie działa? Pewnie wyjdzie tutaj moją niewiedza nt działania sieci i jest to głupie pytanie - ale przynajmniej się człowiek czegoś nauczy mądrego.
 
Winne durnowate wpisy w iptables robione przez dockera dla każdej nowo tworzonej sieci... Nie rozumiem skoro cały świat może gadać z siecią x na porcie xxxx to dlaczego sieć y znajdująca się na tym samym hoście jest takiej możliwości pozbawiona...

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
num pkts bytes target prot opt in out source destination
1 210 53138 DOCKER-ISOLATION-STAGE-2 all -- br-4451e88793e7 !br-4451e88793e7 0.0.0.0/0 0.0.0.0/0
2 9563 19041524 DOCKER-ISOLATION-STAGE-2 all -- lxcbr0 !lxcbr0 0.0.0.0/0 0.0.0.0/0
3 0 0 DOCKER-ISOLATION-STAGE-2 all -- br-21390ee18029 !br-21390ee18029 0.0.0.0/0 0.0.0.0/0
4 14103841 16223281042 DOCKER-ISOLATION-STAGE-2 all -- br-ec5712a88df7 !br-ec5712a88df7 0.0.0.0/0 0.0.0.0/0
5 88 319100 DOCKER-ISOLATION-STAGE-2 all -- br-c867f53ea5dc !br-c867f53ea5dc 0.0.0.0/0 0.0.0.0/0
6 22166422 17129400960 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Chain DOCKER-ISOLATION-STAGE-2 (5 references)
num pkts bytes target prot opt in out source destination
1 0 0 DROP all -- * br-4451e88793e7 0.0.0.0/0 0.0.0.0/0
2 24 1440 DROP all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0
3 0 0 DROP all -- * br-21390ee18029 0.0.0.0/0 0.0.0.0/0
4 0 0 DROP all -- * br-ec5712a88df7 0.0.0.0/0 0.0.0.0/0
5 0 0 DROP all -- * br-c867f53ea5dc 0.0.0.0/0 0.0.0.0/0
6 14199374 16277068662 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Mając już tą informację każdy znajdzie sobie jak problem rozwiązać.
 
To zależy od przypadku użycia. Ja chce mieć jednego postgresa wraz z zarządzaniem nim (pgadmin) oraz x apliakcji backendowych - których nie znam za wczasu, bo mogą dochodzić nowe. Jeden docker-compose zupełnie odpada.

Dodatkowo co jak będe chciał jeszcze RabbitMQ - i będę chciał żeby tylko część aplikacji tego używała. A co jak będę chciał jeszcze Kafke? A gdzieś indziej Elastica.
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. docker sieć
  2. lxcbr0
  3. container sieć