PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Không thể kết nối với máy chủ postgres trong một docker từ một ứng dụng dày đặc

Chỉ cần sử dụng mạng cầu nối do người dùng xác định. Trước tiên, hãy tận dụng kiến ​​thức của bạn bằng cách đọc phần giải thích ngắn gọn về các loại mạng khác nhau trong Docker:https://docs.docker.com/network/bridge/

Thứ hai, xác định mạng của riêng bạn

docker network create foo

Tiếp theo, chạy vùng chứa của bạn được kết nối vào mạng này:

docker run --rm --env-file /path/to/variables -d --network foo django_app:test
docker run --rm -d ... --network foo postgres:alpine ...

Lưu ý trong cả hai lệnh --network foo . Ngoài ra, bạn không cần để hiển thị các cổng trong trường hợp này - bên trong mạng do người dùng xác định, nó được thực hiện tự động:

Các vùng chứa được kết nối với cùng một mạng cầu do người dùng xác định sẽ tự động hiển thị tất cả các cổng với nhau và không có cổng nào với thế giới bên ngoài. Điều này cho phép các ứng dụng trong vùng chứa giao tiếp với nhau dễ dàng mà không vô tình mở quyền truy cập vào thế giới bên ngoài.

Thứ ba, cung cấp cho vùng chứa của bạn tên máy chủ có thể đọc được của con người bằng --name bar

docker run ... --network foo --name my-django django_app:test ...
docker run ... --network foo --name my-postgres postgres:alpine ...

Và cuối cùng sửa chuỗi kết nối - thay đổi từ localhost đến tên vùng chứa, như my-postgres :

...
POSTGRES_HOST=my-postgres
...


  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 date_trunc thành độ chính xác tùy ý?

  2. Làm thế nào để chọn nhiều hơn 1 bản ghi mỗi ngày?

  3. PostgreSQL tương đương với Oracle thu thập số lượng lớn

  4. Tham số cấu hình work_mem trong PostgreSQL trên Linux

  5. Liquibase / PostgreSQL:Làm thế nào để bảo vệ bảng trường hợp chính xác?