2017-12-04 46 views
11

Tôi cố gắng thiết lập một ví dụ nhỏ về AWS Fargate và cố gắng có một thùng chứa ứng dụng với một vùng chứa cơ sở dữ liệu ở đó.Liên kết vùng chứa trong AWS Fargate

Định nghĩa nhiệm vụ bắt đầu cả hai vùng chứa, nhưng vùng chứa ứng dụng của tôi không thành công với getaddrinfo ENOTFOUND db db:3306. Do đó, vùng chứa cơ sở dữ liệu không thể tìm thấy trong vùng chứa ứng dụng của tôi.

Vì Fargate không cho phép "liên kết" của vùng chứa Docker, tôi muốn biết cách chúng có thể giao tiếp với nhau. Vùng chứa cơ sở dữ liệu có tên db với cổng 3306 và vùng chứa ứng dụng của tôi được định cấu hình để sử dụng.

Thật không may, việc xác định liên kết vùng chứa không có sẵn cho Fargate, nhưng chỉ dành cho ECS/EC2 "oldschool".

Trong thiết lập trình tạo docker cục bộ, nó đang hoạt động theo cách này.

Trả lời

10

Vùng chứa trong các tác vụ Fargate chia sẻ không gian tên mạng, vì vậy bạn không cần sử dụng liên kết nào cả. Bạn chỉ có thể giao tiếp thông qua localhost.

Ví dụ, nếu bạn có chứa A chạy một máy chủ web trên cổng 8000, thùng B có thể đạt được nó với curl http://localhost:8000/

+0

Cảm ơn, rất hữu ích! –

0

Bạn có thể thiết lập để các dịch vụ có thể giao tiếp qua địa chỉ IP công cộng với nhau, sau đó bảo mật các cổng bằng VPC chỉ các dịch vụ có thể giao tiếp với chính mình.

Các vấn đề liên quan