Acheminer le trafic vers un conteneur docker basé sur un sous-domaine
J'ai wildcard dns a fait à mon serveur par exemple *.domain.com
J'aimerais l'itinéraire de chaque sous-domaine pour son propre conteneur docker.
De sorte que box1.domain.com va à la appropriée conteneur docker.
Cela devrait fonctionner pour tout le trafic principalement HTTP et SSH.
Ou peut-être le port peut être une partie du sous-domaine par exemple 80.box1.domain.com.
Je vais avoir beaucoup de docker conteneurs de façon à ce que la solution doit être dynamique et non codées en dur pour chaque conteneur.
OriginalL'auteur Adam Jimenez | 2014-07-02
Vous devez vous connecter pour publier un commentaire.
Je suis allé avec interlock pour acheminer le trafic http à l'aide de la nginx plugin.
Je me suis installé sur l'utilisation d'un port aléatoire pour chaque connexion SSH que je ne pouvais pas le faire fonctionner en utilisant le sous-domaine seul.
OriginalL'auteur Adam Jimenez
Une autre solution serait d'utiliser https://github.com/jwilder/nginx-proxy.
Cet outil transfère automatiquement les demandes pour le conteneur approprié (basé sur le sous-domaine via le VIRTUAL_HOST conteneur variable d'environnement).
Par exemple, si vous souhaitez rediriger box1.domain.com à un conteneur, il suffit de régler la VIRTUAL_HOST contenant la variable d'environnement "box1.domain.com".
Voici un tutoriel détaillé, j'ai écrit à ce sujet: http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker.
Oui, il semble. Je ne sais pas de quelle manière il pourrait faciliter SSH en tant que Nginx-proxy ne poignée de requêtes HTTP.
Si vous souhaitez faire un SSH sur votre Panneau de conteneurs à l'aide des sous-domaines, je pense que vous pouvez ajouter un enregistrement CNAME DNS règle pointant vers votre IP de l'hôte. Exposer SSH conteneur du port de l'hôte (donc public), disons 1020, vous permettra de SSH dans votre conteneur à l'aide de votre sous-domaine: ssh -p 1020 sub.domain.com.
OriginalL'auteur Florian Lopes
ma réponse peut venir à la fin, mais lorsque vous utilisez le panneau vous n'avez pas vraiment besoin de ssh pour vous connecter à vos contenants. avec le
docker exec
de commande, vous pouvez exécuter la commande shell directement dans votre conteneur.voici mon conseil: utilisez les proxy nginx conteneur répertoriés au début de la configuration des sous-domaines. et exécuter portainer sur votre ordinateur hôte afin d'avoir un aperçu visuel de vos Contenants, des images, des journaux et même exécuter la commande dans tout cela grâce à la portainer gui.
OriginalL'auteur justice
La solution la plus simple serait d'utiliser le mod_rewrite d'Apache RewriteMap méthode. Il est très performant lorsqu'il est utilisé contre un fichier texte, mais il peut appeler un script si vous le souhaitez. Il est un autre StackOverflow répondre qui couvre le script variante assez bien.
Si vous voulez éviter d'Apache, les bonnes gens plus à dotCloud créé Hipache pour faire le routage pour leurs services PaaS. Ils ont même documenté les différentes choses ils ont essayé avant de construire leur propre solution. J'ai trouvé une référence à tsuru.io à l'aide de hipache exactement pour l'acheminement de conteneurs docker, de sorte que certainement valide à cette fin.
Aussi, voici quelques informations sur les dynamiques de proxy inverse avec nginx et dnsmasq, même si je trouve ça un peu maladroit: nginx + dnsmasq
Jetez aussi un oeil à la suite de StackOverflow question: stackoverflow.com/questions/18497564/...
Faire aucune de ces solutions prennent en charge le trafic SSH pour les conteneurs?
OriginalL'auteur Robert Wohleb