Ada beberapa diskusi lama tentang bagaimana melakukan ini secara konsisten, dipahami dengan baik dan portabel. Tidak ada resolusi lengkap tetapi saya akan menautkan Anda ke diskusi di bawah ini.
Bagaimanapun Anda ingin mencoba menggunakan opsi --add-host untuk menjalankan docker untuk menambahkan alamat ip host ke dalam file / etc / host yang mengandung. Dari sana mudah untuk terhubung ke host pada port yang diperlukan:
Menambahkan entri ke file host kontainer
Anda dapat menambahkan host lain ke file / etc / hosts pada kontener dengan menggunakan satu atau lebih flag --add-host. Contoh ini menambahkan alamat statis untuk host bernama buruh pelabuhan:
$ docker run --add-host=docker:10.180.0.1 --rm -it debian
$$ ping docker
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
Catatan: Terkadang Anda perlu terhubung ke host Docker, yang berarti mendapatkan alamat IP host tersebut. Anda dapat menggunakan perintah shell berikut untuk menyederhanakan proses ini:
$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print $2 }'"
$ docker run --add-host=docker:$(hostip) --rm -it debian
Dokumentasi:
https://docs.docker.com/engine/reference/commandline/run/
Diskusi tentang mengakses host dari wadah:
https://github.com/docker/docker/issues/1143
https://github.com/docker/docker/issues/10023