Có thể có một cổng truy cập container Docker được mở bởi máy chủ không? Cụ thể là tôi có MongoDB và RabbitMQ đang chạy trên máy chủ và tôi muốn chạy một quy trình trong bộ chứa Docker để lắng nghe hàng đợi và (tùy chọn) ghi vào cơ sở dữ liệu.
Tôi biết rằng tôi có thể chuyển tiếp một cổng từ container sang máy chủ (thông qua tùy chọn -p) và có kết nối với thế giới bên ngoài (tức là internet) từ bên trong container Docker nhưng tôi không muốn lộ các cổng RabbitMQ và MongoDB từ chủ nhà đến thế giới bên ngoài.
EDIT: một số làm rõ:
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
Tôi đã phải thực hiện thủ thuật này để có được bất kỳ kết nối internet nào với container: Tường lửa của tôi đang chặn các kết nối mạng từ container docker ra bên ngoài
EDIT : Cuối cùng, tôi đã tạo ra một cây cầu tùy chỉnh bằng cách sử dụng pipework và có các dịch vụ lắng nghe IP của cây cầu. Tôi đã thực hiện theo cách tiếp cận này thay vì nghe MongoDB và RabbitMQ trên cầu docker vì nó cho phép linh hoạt hơn.