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

Không thể kết nối Mongodb với Springboot Container trong docker

Vấn đề

Bạn đang cố gắng truy cập vào DB với IP / tên máy chủ không chính xác. Như bạn thấy, truy cập localhost trong vùng chứa mùa xuân sẽ phân giải thành vùng chứa đó và không có 27017 cổng nghe ở đó. Khi bạn chạy jar trên máy chủ docker, nó có 27017 cổng có sẵn, đó là lý do tại sao nó hoạt động.

Giải pháp

Bạn có thể sử dụng --hostname gắn cờ trong docker run lệnh đặt tên máy chủ của vùng chứa DB để bạn có thể kết nối với nó từ vùng chứa Spring bằng cách sử dụng tên máy chủ.

Tuy nhiên, giải pháp tốt hơn là sử dụng tệp docker-compile và khởi động các vùng chứa bằng cách sử dụng docker-compose up .

Trước hết hãy sử dụng

MongoClient mongo = new MongoClient("db", 27017));

trong mã Spring của bạn và xây dựng hình ảnh mã của bạn.

Sau đó, hãy làm theo các bước bên dưới để bắt đầu các vùng chứa:

A) Tạo tệp Soạn

Tạo một tệp có tên docker-compose.yml với nội dung sau:

version: "2.1"
services:
  app:
    # replace imageName with your image name (block in your case)
    image: imageName:tag
    ports:
      - 9876:4000 # Replace the port of your application here if used
    depends_on: 
      - db
  db:
    image: mongo
    volumes:
      - ./database:/data
    ports:
      - "27017:27017"   

B) Chạy tệp soạn thư

Thực thi lệnh sau để chạy tệp soạn:docker-compose up -d




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoose xóa một đối tượng khỏi một mảng lồng nhau

  2. Không thể truy vấn mongoDB với mongoose trong node.js

  3. Mô hình Mongoose TypeError:Schema không phải là một phương thức khởi tạo

  4. Chỉ mục phạm vi ngày Mongo với bộ lọc

  5. Kết nối với MongoDB trong Azure với Java