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

Cách chạy lệnh một lần trong Docker soạn

Tôi đề nghị thêm một entrypoint-script vào vùng chứa của bạn; trong entrypoint-script này, bạn có thể kiểm tra xem cơ sở dữ liệu đã được khởi tạo chưa và nếu chưa, hãy thực hiện các bước bắt buộc.

Như bạn đã nhận thấy trong câu hỏi của mình, thứ tự mà các dịch vụ / vùng chứa được bắt đầu không nên được coi là đương nhiên, vì vậy có thể vùng chứa ứng dụng của bạn đã được khởi động trước vùng chứa cơ sở dữ liệu, vì vậy tập lệnh phải tính đến điều đó.

Ví dụ, hãy xem hình ảnh WordPress chính thức, hình ảnh này thực hiện khởi tạo một lần cơ sở dữ liệu trong entrypoint-script của nó. Tập lệnh cố gắng kết nối với cơ sở dữ liệu (và thử lại nếu không thể liên hệ với cơ sở dữ liệu (chưa)) và kiểm tra xem có cần khởi tạo không; https://github.com /docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-entrypoint.sh#L146-L171

LƯU Ý

Tôi nhận thấy rằng bạn đã tạo một "vùng chứa chỉ dữ liệu" để đính kèm ổ đĩa của bạn. Kể từ docker 1.9, docker có quản lý khối lượng, bao gồm cả việc đặt tên khối lượng. Do đó, bạn không cần sử dụng vùng chứa "chỉ dữ liệu" nữa.

Bạn có thể xóa vùng chứa chỉ dữ liệu khỏi tệp soạn của mình và thay đổi dịch vụ mongo của bạn để trông giống như thế này;

  mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth

Thao tác này sẽ tạo một ổ đĩa mới, có tên là mongodata nếu nó không tồn tại hoặc sử dụng lại tập hiện có với tên đó. Bạn có thể liệt kê tất cả các tập bằng cách sử dụng docker volume ls và xóa một ổ có docker volume rm <some-volume> nếu bạn không cần nó nữa



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng toán tử $ gte và <e mongo nếu ngày ở định dạng chuỗi trong mongodb

  2. Xác thực MongoDB 3.2 không thành công

  3. Làm cách nào để xử lý một hàm băm tùy ý được trả về từ mongo khi đang di chuyển (sử dụng mgo)?

  4. Ứng dụng nút không phản hồi sau một khoảng thời gian nhất định

  5. Lấy kết quả có thứ tự về mức độ liên quan từ Truy vấn văn bản trên Bộ sưu tập MongoDB bằng Trình điều khiển C #