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?
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:
docker inspect <containerNameOrId>
Mungkin lebih baik untuk filter:
docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1
Biasanya, default docker ip range 172.17.0.0/16
. Host anda harus 172.17.0.1
dan wadah pertama harus 172.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":
docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>
Gunakan --format
pilihan untuk hanya mendapatkan alamat IP bukan seluruh wadah info:
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>
Untuk docker engine menggunakan perintah ini :
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
dan untuk yang lebih tua mesin yang digunakan :
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
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, maka http://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.