Witam wszystkich serdecznie,
Od pewnego czasu staram sie ustawic kilka uslug na swoim QNAPie.
Ze względu na przejrzystość chciałem rozdzielić poszczególne usługi na oddzielne piiki docker compose - tak aby były one podzielone funkcjonalnie.
Aktualnie pracuję nad konfiguracja sieci - chcialbym aby poszczegolne serwisy dostepne byly wylacznie wewnatrz sieci int-net, natomiast dostep do nich byl dostepny poprzez nginx wystawiony na jakims IP(podany adres IP jest adresem przykladowym).
W zwiazku z tym dla serwisu nginx probuje stworzyc dwie sieci:
* int-net (bridge) komunikacja wewnetrzna
* qnet-network (qnet)
O ile z wystawieniem nginx'a na "zewnatrz" nie mam najmniejszego problemu, tak podczas konfigurowania dodatkowej sieci int-net docker rzuca mi nastepujacym bledem:
"Error response from daemon: driver failed programming external connectivity on endpoint proxy-proxy-1 (7e7939bf635169840eb5260adc7892c5e3b37a441b9ca63d776ea93587537ed7): listen tcp4 0.0.0.0:443: bind: address already in use"
Próbowałem następujacych opcji:
1. definiowanie sieci int-net w ramach
a. tego samego pliku compose
b. pliku homepage compose z opcja attachable + ngix attachable + external
c. reczne stworzenie sieci za pomoca docker network create network-int oraz docker network create network-int --attachable --subnet=172.25.0.0/16 a nastepnie definiowanie w ngix attachable + external
d. reczne stworzenie sieci jak w podpunkcie powyzej i proba dodania kontenerow do sieci int-net za pomoca polecenia docker docker network connect int-net 9f79eb44b842
e. rozne inne kombinacje tych rozwiazań
Co ciekawe kiedy utowrzylem siec za pomoca portainera i dodalem recznie kontener za pomoca polecenia z punktu d, wszystko dziala prawidlowo. Rowniez ta sama siec uzyta w pliku compose jako attachable i external zachowuje sie prawidlowo - nie dostaje wspomnianych bledow address already in use :/
Porownanie wynikow docker inspect obu sieci nie wykazuje roznic. Jedyna roznica polega na tym, ze jedna siec zostala dodana za pomoca portainer (dzialajace rozwiazania) a druga recznie/compose.yaml(nie dzialajace rozwiazanie).
Ponizej zalaczam compose.yaml file, ktorego uzywam do przeprowadzania testow.
version: "3.8"
services:
proxy:
image: "jc21/nginx-proxy-manager:latest"
restart: unless-stopped
hostname: "proxy.local"
ports:
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
networks:
int-net:
qnet-network:
ipv4_address: 192.168.30.69
volumes:
- /share/containers_mount/proxy/data:/data
- /share/containers_mount/proxy/letsencrypt:/etc/letsencrypt
networks:
qnet-network:
driver_opts:
iface: eth0
driver: qnet
ipam:
driver: qnet
options:
iface: eth0
config:
- subnet: 192.168.30.0/24
gateway: 192.168.30.10
int-net:
external: true
attachable: true
name: int-net
Plik compose deploy'uje za pomoca container station 3. Posiadam najnowsza wersje QTS (5.1.5.2645). Powyzszy plik compose nie udaje mi sie deployowac za pomoca portainer (
failed to deploy a stack: Network proxy22_qnet-network Creating Network proxy22_qnet-network Error failed to create network proxy22_qnet-network: Error response from daemon: cannot find interface option) ze wzgledu na problem tworzenia sieci qnet.
Czy ma ktos moze pomysl dlaczego moje rozwiazanie moze nie dzialać? Wiem, że mogę kontynuować i tworzyć sieci za pomoca portainer, ale nie jest to to co chcialbym osiagnac - chcialcym miec w jednym miejscu zdediniowane procesy i jak najbardziej je moc zautomatyzowac na przyszlosc.
Z góry dziękuję i pozdrawiam,
Miłosz
Od pewnego czasu staram sie ustawic kilka uslug na swoim QNAPie.
Ze względu na przejrzystość chciałem rozdzielić poszczególne usługi na oddzielne piiki docker compose - tak aby były one podzielone funkcjonalnie.
Aktualnie pracuję nad konfiguracja sieci - chcialbym aby poszczegolne serwisy dostepne byly wylacznie wewnatrz sieci int-net, natomiast dostep do nich byl dostepny poprzez nginx wystawiony na jakims IP(podany adres IP jest adresem przykladowym).
W zwiazku z tym dla serwisu nginx probuje stworzyc dwie sieci:
* int-net (bridge) komunikacja wewnetrzna
* qnet-network (qnet)
O ile z wystawieniem nginx'a na "zewnatrz" nie mam najmniejszego problemu, tak podczas konfigurowania dodatkowej sieci int-net docker rzuca mi nastepujacym bledem:
"Error response from daemon: driver failed programming external connectivity on endpoint proxy-proxy-1 (7e7939bf635169840eb5260adc7892c5e3b37a441b9ca63d776ea93587537ed7): listen tcp4 0.0.0.0:443: bind: address already in use"
Próbowałem następujacych opcji:
1. definiowanie sieci int-net w ramach
a. tego samego pliku compose
b. pliku homepage compose z opcja attachable + ngix attachable + external
c. reczne stworzenie sieci za pomoca docker network create network-int oraz docker network create network-int --attachable --subnet=172.25.0.0/16 a nastepnie definiowanie w ngix attachable + external
d. reczne stworzenie sieci jak w podpunkcie powyzej i proba dodania kontenerow do sieci int-net za pomoca polecenia docker docker network connect int-net 9f79eb44b842
e. rozne inne kombinacje tych rozwiazań
Co ciekawe kiedy utowrzylem siec za pomoca portainera i dodalem recznie kontener za pomoca polecenia z punktu d, wszystko dziala prawidlowo. Rowniez ta sama siec uzyta w pliku compose jako attachable i external zachowuje sie prawidlowo - nie dostaje wspomnianych bledow address already in use :/
Porownanie wynikow docker inspect obu sieci nie wykazuje roznic. Jedyna roznica polega na tym, ze jedna siec zostala dodana za pomoca portainer (dzialajace rozwiazania) a druga recznie/compose.yaml(nie dzialajace rozwiazanie).
Ponizej zalaczam compose.yaml file, ktorego uzywam do przeprowadzania testow.
version: "3.8"
services:
proxy:
image: "jc21/nginx-proxy-manager:latest"
restart: unless-stopped
hostname: "proxy.local"
ports:
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
networks:
int-net:
qnet-network:
ipv4_address: 192.168.30.69
volumes:
- /share/containers_mount/proxy/data:/data
- /share/containers_mount/proxy/letsencrypt:/etc/letsencrypt
networks:
qnet-network:
driver_opts:
iface: eth0
driver: qnet
ipam:
driver: qnet
options:
iface: eth0
config:
- subnet: 192.168.30.0/24
gateway: 192.168.30.10
int-net:
external: true
attachable: true
name: int-net
Plik compose deploy'uje za pomoca container station 3. Posiadam najnowsza wersje QTS (5.1.5.2645). Powyzszy plik compose nie udaje mi sie deployowac za pomoca portainer (
failed to deploy a stack: Network proxy22_qnet-network Creating Network proxy22_qnet-network Error failed to create network proxy22_qnet-network: Error response from daemon: cannot find interface option) ze wzgledu na problem tworzenia sieci qnet.
Czy ma ktos moze pomysl dlaczego moje rozwiazanie moze nie dzialać? Wiem, że mogę kontynuować i tworzyć sieci za pomoca portainer, ale nie jest to to co chcialbym osiagnac - chcialcym miec w jednym miejscu zdediniowane procesy i jak najbardziej je moc zautomatyzowac na przyszlosc.
Z góry dziękuję i pozdrawiam,
Miłosz