Anda tidak dapat melakukan ini melalui Docker, tetapi Anda dapat mengakses port yang tidak terpapar kontainer dari mesin host.
jika Anda memiliki wadah yang menjalankan sesuatu di port 8000, Anda dapat menjalankannya
wget http://container_ip:8000
Untuk mendapatkan alamat ip kontainer, jalankan 2 perintah:
docker ps
docker inspect container_name | grep IPAddress
Secara internal, Docker keluar untuk memanggil iptables ketika Anda menjalankan gambar, jadi mungkin beberapa variasi pada ini akan berfungsi.
untuk mengekspos port 8000 kontainer di port host lokal Anda 8001:
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
Salah satu cara Anda dapat mengatasi hal ini, adalah dengan menyiapkan wadah lain dengan pemetaan port yang Anda inginkan, dan membandingkan output dari perintah iptables-save (walaupun, saya harus menghapus beberapa opsi lain yang memaksa lalu lintas untuk pergi melalui buruh pelabuhan proksi).
CATATAN: ini adalah merubuhkan buruh pelabuhan, jadi harus dilakukan dengan kesadaran bahwa itu dapat menciptakan asap biru
ATAU
Alternatif lain, adalah dengan melihat opsi -P (baru? Posting 0.6.6?) - yang akan menggunakan port host acak, dan kemudian menghubungkannya.
ATAU
dengan 0.6.5, Anda dapat menggunakan fitur LINK untuk memunculkan wadah baru yang berbicara dengan yang sudah ada, dengan beberapa tambahan merelay ke bendera -p wadah itu? (Saya belum menggunakan LINK)
ATAU
dengan buruh pelabuhan 0,11? Anda dapat menggunakan docker run --net host ..
untuk melampirkan wadah Anda langsung ke antarmuka jaringan host (yaitu, net tidak spasi-nama) dan dengan demikian semua port yang Anda buka di wadah terbuka.