Ho una configurazione di base docker-compose composta da quanto segue:
- subnet bridge docker a partire da 192.168.50.0/24
- 4 servizi: coniglio, configurazione primaverile, tariffe, check-in
- ognuno di questi servizi ha il suo nome hostcorrettamente impostato e in grado di trovarsi all'interno della sottorete (192.168.50.0). Gli IP sono attribuiti dinamicamente in questa sottorete e iniziano tutti sulla porta 8080 all'interno dei rispettivi contenitori.
- Dall'host, la rete bridge è visibile e ogni istanza del contenitore è accessibile usando il suo IP.
Non riesco a risolvere queste voci host senza mappare una porta diversa da 8080 all'host docker.
Per questa voce nel mio host "s / etc / hosts: 192.168.50.1 tariffe checkin book di configurazione coniglio: i servizi sono accessibili solo se associo esplicitamente i servizi "porte 8080 alla porta 8081 del mio host, porta 8082, porta 8083 ... per ogni servizio nel file .yml.
C'è un altro modo per assicurarsi che i servizi siano rilevabili con il loro nome DNS anche dall'esterno della sottorete?
risposte:
1 per risposta № 1Non è possibile associare tutti e 4 i contenitori alla stessa porta sull'host. Solo un contenitore per porta. Tuttavia, esistono alcune soluzioni alternative:
Opzione 1: utilizzare porte diverse per ciascun contenitore
- Per esempio, associa le porte 8081, 8082, 8083 e 8084.
- In / etc / hosts, mappare correttamente ciascun IP contenitore.
- Specificare la porta oltre al nome host durante la connessione. Piace
https://fares:8081
I tuoi / etc / hosts potrebbero apparire così:
192.168.50.1 fares
192.168.50.2 rabbit
...
Opzione 2: utilizzare un proxy inverso
È possibile impostare un addizionale Contenitore Docker come a proxy inverso nel tuo docker-compose.yml. Il contenitore proxy inverso può essere associato alla porta 8080 e inoltrare la richiesta al contenitore corretto in base al nome host. Non è necessario associare le porte agli altri contenitori sull'host perché il proxy inverso inoltra le richieste. C'è un post sul blog che spiega come funziona nel dettaglio: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/