È possibile avere porte di accesso al contenitore Docker aperte dall'host? Concretamente ho MongoDB e RabbitMQ in esecuzione sull'host e mi piacerebbe eseguire un processo in un contenitore Docker per ascoltare la coda e (facoltativamente) scrivere sul database.
So di poter inoltrare una porta dal container all'host (tramite l'opzione -p) e avere una connessione al mondo esterno (cioè internet) dall'interno del container Docker ma mi piacerebbe non esporre le porte RabbitMQ e MongoDB dall'host al mondo esterno.
EDIT: alcuni chiarimenti:
Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-22 22:39 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00027s latency).
PORT STATE SERVICE
6311/tcp open unknown
joelkuiper@vps20528 ~ % docker run -i -t base /bin/bash
root@f043b4b235a7:/# apt-get install nmap
root@f043b4b235a7:/# nmap 172.16.42.1 -p 6311 # IP found via docker inspect -> gateway
Starting Nmap 6.00 ( http://nmap.org ) at 2013-07-22 20:43 UTC
Nmap scan report for 172.16.42.1
Host is up (0.000060s latency).
PORT STATE SERVICE
6311/tcp filtered unknown
MAC Address: E2:69:9C:11:42:65 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 13.31 seconds
Ho dovuto fare questo trucco per ottenere qualsiasi connessione Internet all'interno del contenitore: il mio firewall sta bloccando le connessioni di rete dal contenitore docker all'esterno
EDIT : Alla fine sono andato con la creazione di un bridge personalizzato usando pipework e facendo in modo che i servizi fossero in ascolto sugli IP del bridge. Ho seguito questo approccio invece di far ascoltare MongoDB e RabbitMQ sul bridge docker perché offre maggiore flessibilità.