Apakah mungkin untuk memiliki port akses wadah Docker dibuka oleh tuan rumah? Secara konkret saya memiliki MongoDB dan RabbitMQ berjalan di host dan saya ingin menjalankan proses dalam wadah Docker untuk mendengarkan antrian dan (opsional) menulis ke database.
Saya tahu saya dapat meneruskan port dari container ke host (melalui opsi -p) dan memiliki koneksi ke dunia luar (yaitu internet) dari dalam container Docker tetapi saya tidak ingin mengekspos port RabbitMQ dan MongoDB dari tuan rumah ke dunia luar.
EDIT: beberapa klarifikasi:
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
Saya harus melakukan trik ini untuk mendapatkan koneksi internet dengan wadah: Firewall saya memblokir koneksi jaringan dari wadah buruh pelabuhan ke luar
EDIT : Akhirnya saya pergi dengan membuat jembatan kustom menggunakan pipa dan meminta layanan mendengarkan pada jembatan IP. Saya menggunakan pendekatan ini daripada meminta MongoDB dan RabbitMQ mendengarkan pada docker bridge karena memberikan lebih banyak fleksibilitas.