PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menghubungkan wadah aplikasi web Docker ke wadah Docker PostgreSQL?

Saat menggunakan docker-compose v2, tidak perlu membuat tautan antar layanan. Docker 1.9 dan 1.10 memungkinkan Anda terhubung ke container lain di jaringan (khusus) yang sama melalui namanya.

Anda seharusnya dapat terhubung menggunakan salah satu nama layanan atau nama wadah sebagai nama host. Mengingat bahwa nama wadah dihasilkan oleh docker-compose, ini tidak terlalu nyaman untuk digunakan, jadi karena alasan itu, docker-compose juga menambahkan alias dengan nama layanan untuk setiap wadah.

Ambil contoh yang sangat sederhana ini. Saya telah menggunakan wadah Nginx untuk kenyamanan, tetapi hal yang sama berlaku untuk situasi Anda;

version: '2'
services:
  web_app:
    image: nginx
  db:
    image: nginx

Pertama memulai proyek (dengan asumsi;

$ docker-compose --project-name=test up -d
Creating network "test_default" with the default driver
Creating test_db_1
Creating test_web_app_1

Kemudian ping layanan "db" dari dalam test_web_app_1 wadah:

$ docker exec -it test_web_app_1 ping -c 2 db
PING db (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.108 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.243 ms
--- db ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.108/0.175/0.243/0.068 ms

Jika Anda memeriksa test_db_1 container, Anda dapat melihat bahwa docker-compose secara otomatis menambahkan alias "db" untuk test_db_1 wadah;

$ docker inspect test_db_1

Memberikan:(hanya NetworkSettings.Networks bagian)

"Networks": {
    "test_default": {
        "IPAMConfig": null,
        "Links": null,
        "Aliases": [
            "db",
            "002b1875e61f"
        ],
        "NetworkID": "0f9e2cddeca79e5a46c08294ed61dee273828607f99014f6410bda887626be70",
        "EndpointID": "a941ab95586a8fdafc5075f9c5c44d745f974e5790ef6048b9e90115a22fb31f",
        "Gateway": "172.18.0.1",
        "IPAddress": "172.18.0.2",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:12:00:02"
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql des enkripsi

  2. Batasan Pemeriksaan PostgreSQL di Liquibase

  3. Melewati variabel C ke perintah SQL

  4. BERGABUNG (PILIH ... ) pada 1=1?

  5. Masukkan massal ke Postgres dengan brianc/node-postgres