Come hide i contenitori Docker dietro un singolo nome host

Sono piuttosto nuovo a Docker. Ho iniziato avvicinandosi alla mentalità VM, ma sono consapevole che utilizza un paradigma diverso da VM, o addirittura i contenitori tradizionali LXC.

La sfida più grande è stata con la comprensione di come funziona la networking. Sto cercando di utilizzare Docker per eseguire più servizi su una macchina che richiedono alcune delle stesse porte, per evitare conflitti di port.

Voglio accedere a tutti usando il FQDN della macchina host, senza wherersi preoccupare di aggiungere i contenitori FQDN a DNS. Inoltro le porte di contenitore pertinenti alle porte host non utilizzate.

Il problema è che, quando cerco di accedere ai servizi dal mio browser, viene reindirizzato al FQDN del contenitore, che non può risolvere. Il risultato è un errore "Server non trovato".

C'è un modo per hide tutti i contenitori dietro il FQDN dell'host, senza wherer mai risolvere i FQDN dei contenitori?

È ansible rendere each contenitore docker utilizzare una port esterna diversa e quindi avere un docker del server con qualcosa di simile a nginx o apache che invertire le proxy le richieste. Ho dovuto build qualcosa di simile che prende tutto in un hostname e poi passa attraverso tutto il traffico al contenitore e alla port appropriati.

La difficoltà è che i contenitori docker avranno nuovi indirizzi each volta che vengono creati. È ansible analizzare dynamicmente i loro indirizzi quando si avvia e che il contenitore proxy inizia con gli indirizzi. Il modo in cui è ansible afferrare questi indirizzi è con un 'ispezionatore docker' e awk i dati desiderati oppure è ansible utilizzare una di queste librerie come il docker-py per catturare i dati pertinenti.