Jaringan default kontainer buruh pelabuhan berupa jembatan (di LAN yang sama dengan host, tetapi menggunakan IP LAN terpisah), ketika program berjalan di lingkungan produksi, Anda hanya perlu mengonfigurasi alamat layanan yang sesuai untuk terhubung ke database, redis, dll.
Dalam lingkungan pengembangan, jika layanan berjalan di buruh pelabuhan dan database berjalan secara lokal, mengonfigurasi 127.0.0.1 tidak mudah digunakan.
Ini dapat diselesaikan dengan dua cara.
Solusi 1:
Perlakukan mesin host dan kontainer sebagai dua komputer terpisah, dan konfigurasikan IP LAN host host atau IP publik saat mengonfigurasi alamat.
Solusi 2:
Tulis alamat host secara langsung sebagai: host.docker.internal, meskipunMetode kedua membutuhkan versi buruh pelabuhan yang lebih besar dari 18.03 dan harus tersedia di Windows dan Mac。
Untuk menguji apakah kedua metode ini dapat mengakses host, Anda dapat langsung menjalankan gambar dengan docker untuk melakukan ping pada baris perintah:
Seperti yang Anda lihat dari gambar di atas, akses kontainerhost.docker.internalAnda dapat mengakses layanan host, dengan memeriksa file /etc/hosts, Anda akan menemukan bahwa tidak ada pengalihan nama domain, dan Anda tidak tahu prinsip dasar buruh pelabuhan secara spesifik.
Baik host maupun kontainer dapat mengakses layanan host melalui host.docker.internal, tetapi alamat yang dikembalikan oleh perintah ping berbeda, sebagai berikut:
|