Bagaimana cara mendapatkan alamat IP dari menjalankan docker container
Saya menggunakan Docker untuk Mac. Saya menjalankan nodejs berdasarkan microservice dalam kontainer Docker. Saya ingin menguji node microservice melalui browser. Bagaimana cara mendapatkan alamat IP dari menjalankan docker container?
73
7
Jika anda don't ingin memetakan port dari host anda untuk wadah dapat anda akses langsung ke docker range ip untuk wadah. Kisaran ini secara default hanya diakses dari host anda. Anda dapat memeriksa wadah jaringan data melakukan:
Mungkin lebih baik untuk filter:
Biasanya, default docker ip range
172.17.0.0/16
. Host anda harus172.17.0.1
dan wadah pertama harus172.17.0.2
jika semuanya normal dan anda didn't menentukan semua jaringan khusus pilihan.EDIT Lain cara yang lebih elegan menggunakan docker fitur bukan "bash menipu":
Gunakan
--format
pilihan untuk hanya mendapatkan alamat IP bukan seluruh wadah info:Untuk docker engine menggunakan perintah ini :
dan untuk yang lebih tua mesin yang digunakan :
jika anda ingin mendapatkan hal yang tepat dalam wadah, anda dapat mencoba
Anda dapat memulai wadah dengan bendera
-P
. Ini "menetapkan" random port untuk terkena port dari gambar anda.Dengan
docker port <container id>
anda dapat melihat secara acak dipilih port. Akses maka mungkin melaluilocalhost:port
.Untuk kasus saya, di bawah ini bekerja pada Mac:
Aku tidak bisa akses kontainer IPs langsung pada Mac. Saya perlu menggunakan
localhost
dengan port forwarding, misalnya jika port 8000, makahttp://localhost:8000
Lihat https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds
Asli jawabannya adalah dari: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949
Anda tidak dapat mengakses docker's IP dari luar mesin host. Jika browser anda pada mesin lain yang lebih baik untuk memetakan host port untuk pelabuhan kontainer dengan melewati
-p 8080:8080
untuk menjalankan perintah.Lewat
-p
anda dapat memetakan host port untuk container port dan proxy diatur untuk meneruskan semua traffix untuk kata host port untuk tempat khusus pelabuhan kontainer.