Pomoc Mariadb w kontenerze - problem z połączeniem

Status
Brak możliwości dodawania odpowiedzi.

goruss

System Engineer
Q Specialist
20 Październik 2020
114
7
18
24
QNAP
null
Ethernet
null
Witam,
Jestem już na finiszu swojej konfiguracji (migracja hostingu na qnapa).
Do szczęścia brakuje mi tylko poprawnie działającej konfiguracji serwera bazy danych.
Mam uruchomioną aplikację kontenerową mariadb + phpmyadmin jak poniżej
Kod:
version: '3'

services:
  db:
    image: webhippie/mariadb:latest
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: 'rootpass'
      MARIADB_DATABASE: 'nextcloud'
      MARIADB_USERNAME: 'nextcloud'
      MARIADB_PASSWORD: 'userpass'
    ports:
      - "3308:3306"
  phpmyadmin:
    image: phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: rootpass
    ports:
      - "9080:80"

Kontenery oczywiście działają, mogę połączyć się do phpmyadmin oraz zarządzać bazami, ale niestety nie mogę połączyć się z bazami danych np. poprzez nextclod gdzie wpisuję jako dbhost IPqnapa:3308
Problem być może leży w NAT , ale teoretycznie powinno to działać.
Poprzez ssh sprawdzam ip kontenerów
Kod:
docker network ls
docker inspect −−format '{{ .NetworkSettings.IPAddress }}' <ID kontenera>
i widzę, że kontenery mariadb oraz phpmyadmin są w jednej podsieci 172.29.0.0/22
natomiast kontener nextcloud w innej tj. 10.0.3.0/24 i być może to ma jakieś znaczenie choć nie powinno ponieważ nie łączę się poprzez ip dockera tylko przekierowany port...
Oczywiście jeżeli aplikacja typu nextcloud działa w kontenerze bridge to połączenie z bazą jest możliwe.
Jednak taka konfiguracja nie jest dla mnie optymalna ponieważ zaraz IP w sieci mi zabraknie.
 
Wiesz co,
jeszcze jestem w trakcie sprawdzania więc proszę nie traktować tego jako pewnik, ale wszystko na to wskazuje, że podsieci podsieci poszczególnych kontenerów mają decydujące znaczenie w kontekście komunikacji pomiędzy nimi.
Tak się składa, że jedne kontenery uruchamiam za pomocą GUI qnap container station wyszukując interesujące mnie aplikacje, a inne poprzez docker compose file za pomocą przycisku Create Application.
Container station ma ustawioną w GUI podsieć 10.0.3.0/24 i te kontenery się ze sobą komunikują natomiast poprzez docker compose jest tworzona zupełnie inna podsieć dla kontenera i jest problem z komunikacja.
Sprawdziłem to tworząc ww. kontener nie poprzez docker compose, a poprzez GUI containter station i połączenie z bazą jest...
To chyba rozwiąże moje problemy z pozostałych tematów (reverser proxy itp.).
W takim razie pozostaje pytanie w jaki sposób utworzyć kontener poprzez docker compose, aby był w tej samej podsieci co pozostałe?
 
Fakt, nie zauważyłem linka - duże dzięki za pomoc.
Ostatnie pytanie w tym temacie - jak tworzę dockera za pomocą GUI container station to czy gdzieś się zapisuje to co wyklikam np. do pliku .yml?
Chciałbym sobie podejrzeć te informacje dotyczące sieci dockera w qnapie, a przyznam, ze trochę mam z tym problem.
 
Zrobiłem, ale nie bardzo wiem jak te informacje nanieść na docker compose.
Znalazłem jedynie coś takiego
Kod:
networks:
   default:
       external:
           name: bridge
co teoretycznie oznacza, że kontener dołączam do istniejącej już sieci kontenerów, ale to nic nie zmienia w ustawieniach sieci kontenera.
Ok, szukam dalej.
Dobra, dopracowałem konfiguracje i wiem jak "wyklikać" kontener za pomocą container station z danego obrazu docker więc nie będę musiał korzystać z docker compose.
Tym samym wszystkie kontenery mam w jednej sieci i wszystko nareszcie działa.
Zrozumiałem też przy okazji o co Wam chodziło z tą zmianą IP (była taka wzmianka w innym temacie) i teraz wiem, że dotyczy to IP dla kontenera, które ulega zmianie po restarcie qnapa, ale w moim przypadku to nie ma znaczenia.
W końcu wszystko zaczęło działać:
- reverse proxy dla nextcloud
- mariadb v. 10.4 dla nextcloud
- phpmyadmin dla mariaDB
wszystkie kontenery w konfiguracji NAT
Jeszcze raz dzięki za pomoc.
 
Status
Brak możliwości dodawania odpowiedzi.