Qnap Container : Docker sans IP

Gregzyks

Apprenti
28 Février 2017
34
3
8
Bonjour à tous,
j'ouvre un topic car sur mon serveur Qnap, je ne parviens pas à faire fonctionner les conteneurs, comme Homebridge par exemple, mais ce n'est hélas pas le seul...

En effet, autant, je n'ai jamais de problème avec les VM, autant les conteneurs restent un mystère. La plupart de ceux que je tente d'installer n'ont pas d'IP, je n'arrive donc pas à pointer dessus via les navigateurs. Le dernier en date est comme vous l'avez compris, Homebridge alors que j'ai suivi à la lettre les tutos d'installation trouvés sur le net.
Il ne s'agit d'ouverture de ports sur la boxe, je maîtrise ce concept sans problème. Dans le conteneur, il devrait s'afficher une IP, et ce n'est jamais le cas...

Je dois rater quelque chose... Si vous avez une idée, j'en serais ravi.

Merci d'avance.
 
Salut,
En général le conteneur se ratache en bridge au réseau du nas, et possède donc la meme IP que le nas.
Cest pour cela qui il a dailleur une notion de port interne au docker et externe a celui ci.
 
En effet, les conteneurs que j'installe sont bien en bridge. Mais quand je pointe sur l'adresse du Nas, je ne la touche jamais.
J'ai essayé en passant par le nom de domaine, du nas, avec les bons ports, sans...

Je ne sais plus quoi tenter.
 
Pour te connecter à un service déployé dans un conteneur, si tu es en bridge, ton conteneur aura une IP sur une plage d'adresses privées disponible, par exemple 172.16.0.0/255.240.0.0, ou bien 192.168.0.0/255.255.0.0, etc...
Donc ton hôte (le NAS ici) devient la passerelle dans ce sous-réseau, prenons par exemple 172.19.0.0, le NAS aura comme IP 172.19.0.1 (la passerelle), et tes conteneurs, 172.19.0.2, 172.19.0.3, etc...
Tout à fait similaire au fonctionnement de ton LAN physique avec ta box ou ton routeur.
Comment tu rediriges un port depuis ta box ? tu fais correspondre un port de la box externe vers un port du périphérique désiré.

Ici on va faire pareil, on va rediriger un port du NAS vers un port du conteneur.
Si tu utilises Docker en ligne de commande, c'est ce que tu précises quand tu écris :
Code:
-p 80:8080
Tu dis que le service déployé dans le conteneur, exposé sur son 8080, sera accessible sur le port 80 de son hôte, le NAS.

En docker-compose, ça se traduit par :
Code:
ports:
   - 80:8080
Sur QNAP aucune idée je n'en ai pas, si tu as une interface de gestion tu dois pouvoir au moment de la création de ton conteneur désigner le port source (interne) => hôte et le port destination (externe) => conteneur.

Pour connaître l'IP d'un conteneur, en SSH tu tapes (sudo si besoin) :
Code:
docker inspect <nom_du_conteneur>
Tu auras à la fin de l'output un champ Gateway et un champ IPAddress.
 
Merci pour toutes ces infos, c'est très clair !
J'ai donc essayé avec un autre conteneur, juste pour voir comment cela fonctionnait, et j'ai pris le plus simple : wordpress.

Dans ce cas, une URL s'affiche : monnomdedomaine:10084 et cela fonctionne.

Donc parfaitement en adéquation avec ce que tu m'as expliqué juste avant.


En revanche, pour Homebridge et les autres, c'est toujours la même panade.. Je ne sais pas ce que je loupe.
 
Voilà une partie de la réponse en ssh ...
J'ai essayé de toucher le conteneur en 10.0.3.2, en 10.0.3.2:51826, car c'est le port sur lequel j'ai installé le contenur. Et rien dans tous les cas...


"Gateway": "10.0.3.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "10.0.3.2",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"MacAddress": "02:42:0a:00:03:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
 
2 possibilités :

- tu n'es pas en bridge mais en mode host, c'est souvent le cas pour la domotique pour des nécessités de broadcast d'équipements divers sur le LAN. Auquel cas pas de NAT de port, l'interface est disponible sur l'IP du NAS au port en question.
- le port 51826 est un port de communication et pas un port avec une UI.

Si tu avais un lien vers l'image que tu utilises.
 
C'est fort, quand je lis les instructions du mode GUI et du mode Console il ne donne pas de consignes équivalentes.
Et il y a des erreurs dans le mode Console également.
Si tu tiens à le faire via le GUI, passe en mode host et pas bridge (point 4), ou alors tu laisses en bridge mais il faut pouvoir préciser la redirection de port : port 51826 du NAS vers le port 51826 du conteneur.
Et ne connaissant pas l'interface QNAP il faut fouiller un peu à mon avis.
 
Je pense pouvoir faire pointer un ou plusieurs ports du NAS sur le conteneur. Bon il va falloir tâtonner un peu...

Concernant l'interface en GUI, je suis un peu contraint à un moment donné d'y passer, ne serait-ce que pour ajouter des plugins à HomeBridge.


Entre temps, j'ai solutionné ce problème de Homebridge en passant par la linux station, cela ne consommera pas beaucoup plus de ressource qu'actuellement car ce linux tourne de toute façon.
Je reste néanmoins un peu frustré de ne pas réussir à installer des conteneurs car ces systèmes sont justement très bons pour l'économie des ressources du serveur. Là, je m'en sors un peu avec une parade, mais ce n'est pas la gloire...
 
  • J'aime
Réactions: Fabwiss
Je te conseille de t'orienter vers Docker en lignes de commande, et à terme docker-compose qui est encore plus pratique.
J'ai quelques ressources pour apprendre à utiliser Docker, n'hésite pas à me mp si tu veux plus de détails.