conexión desde el contenedor de Docker al host de Docker

Tengo una configuración en la que ejecuto todas las partes de mi sitio web en contenedores docker. Mi nginx que escucha en el puerto 80 y 443 se ejecuta en un contenedor.

363292a98545        scivm/nginx-django-scivmcom:latest   /usr/bin/supervisord   12 days ago         Ghost               0.0.0.0:40001->22/tcp, 88.198.57.112:443->443/tcp, 88.198.57.112:80->80/tcp     lonely_feynmann           

Quiero configurar un proxy para un servicio en otro contenedor. Este contenedor está vinculado al puerto 3000 en el host:

b38c8ef72d0a        mazzolino/strider-dind:latest        wrapdocker /usr/bin/   41 minutes ago      Up 41 minutes       0.0.0.0:3000->3000/tcp, 22/tcp, 27017/tcp                                       distracted_einstein      

Mis iptables en el host de docker se ven así:

root@Ubuntu-1204-precise-64-minimal /var/run # iptables -LChain INPUT (policy ACCEPT) target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHEDACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sshACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpsACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8000DROP       all  --  anywhere             anywhere            Chain FORWARD (policy ACCEPT)target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            ACCEPT     all  --  anywhere             anywhere            ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHEDChain OUTPUT (policy ACCEPT)target     prot opt source               destination         

Desde el contenedor, no puedo conectarme al puerto 3000 en la máquina host debido a la configuración de iptables.

No quiero abrir el puerto 3000 a la Internet pública.

¿Hay alguna forma de abrir un puente directo entre el contenedor y el host en el puerto 3000?

¿O debo modificar mis iptables para aceptar desde el rango de IP de docker?

Todo lo que necesitas es Docker capacidades de enlace [en desuso]

Simplemente deshágase de todas las cosas complicadas que intentó hacer y comience a usar contenedores con nombre y luego vincúlelos entre sí.

La respuesta de Elías es correcta, pero el vínculo es largo y confuso. Aquí hay un resumen simple:

Primero, ejecute el contenedor al que desea vincular y asígnele un nombre:

sudo docker run -d --name db training/postgres

A continuación, ejecute el otro contenedor, vinculándolo al primer contenedor:

sudo docker run -d -P --name web --link db:db training/webapp python app.py

El enlace del primer contenedor al segundo contenedor se coloca en /etc/hosts. Así que puedes usarlo como un nombre de host. Por ejemplo:

sudo docker run --name web --link db:db training/webapp ping db