MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

SpringBoot trong Docker không kết nối với Mongo trong Docker

CHỈNH SỬA:

Tôi chưa bao giờ thực hiện phát triển spring-boot, nhưng lỗi bạn đang nói đang được hiển thị rất có thể không liên quan đến vấn đề mongo. Tuy nhiên, đây là lời giải thích tại sao kết nối mongo của bạn không thành công:

docker-compose tạo một mạng ảo nếu một mạng chưa được chỉ định trong tệp (như trong trường hợp của bạn).

Tất cả các ứng dụng của bạn chạy bên trong mạng này, hoàn toàn cách biệt với nhau. Như vậy, localhost trong vùng chứa khởi động mùa xuân của bạn thực sự đề cập đến chính nó. Có nghĩa là ứng dụng khởi động mùa xuân của bạn đang mong đợi mongo ví dụ đang chạy bên trong vùng chứa của nó (mà không phải, nó nằm trong một vùng chứa khác).

Điều này sẽ ổn khi cả cơ sở dữ liệu và ứng dụng đang chạy trên mạng của máy tính xách tay của bạn. Nhưng như đã đề cập, chúng hiện đang chạy trong docker-compose mạng, hoàn toàn cách ly.

Tuy nhiên, docker-compose là thực sự thông minh! Nó tạo một DNS cho mỗi vùng chứa của bạn sử dụng tên-dịch vụ (trong trường hợp của bạn là mongospring ) được chỉ định trong docker-compose của bạn để cho phép dễ dàng truy cập vào các vùng chứa bên trong mạng.

Vì vậy, bạn có thể thay đổi spring.data.mongodb.uri=mongodb://localhost:27017/db tới spring.data.mongodb.uri=mongodb://mongo:27017/db và điều đó sẽ cho phép nó kết nối.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sự cố cài đặt trình điều khiển PHP MongoDb trên wamp

  2. Các đối số tổng hợp trong Mongodb cho $ lookup phải là chuỗi

  3. Loại trừ các trường khỏi kết quả trong MongoDB mon

  4. Cách đánh điểm chuẩn các tập lệnh mongodb / mongoid, để so sánh hai kỹ thuật truy vấn khác nhau

  5. Làm cách nào để đẩy thông báo với angle.js?