Manfaatkan saja jaringan jembatan yang ditentukan pengguna. Pertama, manfaatkan pengetahuan Anda dengan membaca penjelasan singkat tentang berbagai jenis jaringan di Docker:https://docs.docker.com/network/bridge/
Kedua, tentukan jaringan Anda sendiri
docker network create foo
Selanjutnya, jalankan penampung Anda terhubung ke jaringan ini:
docker run --rm --env-file /path/to/variables -d --network foo django_app:test
docker run --rm -d ... --network foo postgres:alpine ...
Perhatikan di kedua perintah --network foo
. Anda juga tidak perlu untuk mengekspos port dalam kasus ini - di dalam jaringan yang ditentukan pengguna itu dilakukan secara otomatis:
Kontainer yang terhubung ke jaringan jembatan yang ditentukan pengguna yang sama secara otomatis mengekspos semua port satu sama lain, dan tidak ada port ke dunia luar. Hal ini memungkinkan aplikasi kemas untuk berkomunikasi satu sama lain dengan mudah, tanpa sengaja membuka akses ke dunia luar.
Ketiga, berikan wadah Anda nama host yang dapat dibaca manusia dengan --name bar
docker run ... --network foo --name my-django django_app:test ...
docker run ... --network foo --name my-postgres postgres:alpine ...
Dan akhirnya perbaiki string koneksi - ubah dari localhost
ke nama wadah, seperti my-postgres
:
...
POSTGRES_HOST=my-postgres
...