J’ai ajouté avec docker des services web que j’arrive à atteindre de l’extérieur et qui fonctionnent bien via des redirect yunohost. Je dispose de mon propre nom de domaine.
Cependant, pour faire des actions particulières, je souhaite y accéder via une url en local de type http://192.168.1.101:2342
Ma machine est dans le même serveur local.
J’ai arrêté les services suivant pour être certain que le problème ne vient pas d’eux:
Le problème persiste.
Je ne suis pas un spécialiste réseau, en général je trouve la solution sur le net, mais là je ne suis pas tombé sur de solution.
Avez-vous des idées ? Qu’est-ce que je devrais contrôler ?
Dans la webadmin >tools >firewall, tu ajoutes les règles des ports dont tu as besoin. Tu pourras par la suite joindre le service via l’adresse locale et le port défini.
…mais -logiquement- après cela, tu ne devrais plus pouvoir redémarrer ton conteneur sans relancer au préalable docker (et rebelote en cas de rechargement du pare-feu).
Il est fort possible que tu aies pu accéder à ton conteneur à son ip:port pendant un temps et que ce soit devenu impossible à un moment, non ?
=> Utile à savoir: quand docker est démarré, des règles sont ajoutées à iptables sans toucher à celles de Yunohost. Mais quand le pare-feu de Yunohost est redémarré, il efface les règles de docker dans iptables (à vérifier avec :
En somme, le jour 1, on crée des conteneurs et les redirections respectives sur yunohost et tout est fonctionnel: les conteneurs sont accessibles à leur nom de domaine et leur ip:port.
Puis, disons par exemple le jour 10, on s’aperçoit que les conteneurs sont toujours accessibles à leur nom de domaine mais plus à leur ip:port… Il y a fort à parier que dans l’intervalle le pare-feu YNH ait été rechargé (= toute la conf docker effacée dans iptables = ports mappés inaccessibles de l’extérieur).
Cela peut vite devenir contraignant: si le pare-feu YNH a été rechargé, il faut penser à redémarrer docker dès que l’on veut créer/redémarrer/modifier un conteneur… ou le rendre de nouveau disponible à son ip:port (par exemple, après avoir ouvert un port dans le PF de YNH, ouverture qui est suivie d’un reload…).
Penser à redémarrer docker est, disons, la solution 1.
La solution 2 est d’empêcher docker de créer des règles iptables en modifiant ou créant le fichier /etc/docker/daemon.json avec le paramètre suivant (voir ici):
{
"iptables": false
}
suivi d’un sudo systemctl restart docker
Evidemment on perd quelques fonctionnalités au passage.