Docker swarm bản sao mongodb

MongoDB là cơ sở dữ liệu tài liệu có khả năng mở rộng và tính linh hoạt mà bạn muốn với truy vấn và lập chỉ mục mà bạn cần

MongoDB là một chương trình cơ sở dữ liệu NoSQL và sử dụng các tài liệu giống JSON với lược đồ. MongoDB được phát triển bởi MongoDB Inc và được cấp phép theo Giấy phép Công cộng Phía Máy chủ (SSPL)

Trong bài đăng này, tôi sẽ chỉ cho bạn cách triển khai MongoDB 4. 2. 2 trong Docker Swarm Cluster bằng cách sử dụng docker soạn{. rank-toán-link}

tên lửa. Trò chuyện (trò chuyện nhóm doanh nghiệp nguồn mở, miễn phí) và Wekan (Kanban nguồn mở) dựa trên máy chủ cơ sở dữ liệu MongoDB. Bạn sẽ phải cài đặt và định cấu hình MongoDB trước khi tiếp tục cài đặt chúng

Ngoài ra, bạn nên sử dụng Bộ bản sao MongoDB{. rank-math-link} để cải thiện hiệu suất của Rocket. Trò chuyện và Wekan thông qua đuôi của Meteor Oplog

Vui lòng đảm bảo rằng bạn phải đáp ứng các yêu cầu dưới đây trước khi tiến hành triển khai thực tế

  1. Cụm bầy Docker{. rank-math-link} với GlusterFS là công cụ bền bỉ
  2. Traefik{. rank-math-link} làm proxy ngược để hiển thị microservice cho bên ngoài

Tóm lược

Giới thiệu về MongoDB

MongoDB là cơ sở dữ liệu tài liệu có khả năng mở rộng và tính linh hoạt mà bạn muốn với truy vấn và lập chỉ mục mà bạn cần

MongoDB là một chương trình cơ sở dữ liệu NoSQL và sử dụng các tài liệu giống JSON với lược đồ. MongoDB được phát triển bởi MongoDB Inc và được cấp phép theo Giấy phép Công cộng Phía Máy chủ (SSPL)

Nếu bạn muốn tìm hiểu thêm về MongoDB, hãy truy cập trang chính thức và Wikipedia

MongoDB 4. 2. 2 Tính năng

  1. MongoDB lưu trữ dữ liệu trong các tài liệu linh hoạt, giống như JSON, nghĩa là các trường có thể thay đổi từ tài liệu này sang tài liệu khác và cấu trúc dữ liệu có thể thay đổi theo thời gian
  2. Mô hình tài liệu ánh xạ tới các đối tượng trong mã ứng dụng của bạn, giúp dễ dàng làm việc với dữ liệu
  3. Các truy vấn đặc biệt, lập chỉ mục và tổng hợp theo thời gian thực cung cấp những cách hiệu quả để truy cập và phân tích dữ liệu của bạn
  4. Cốt lõi của MongoDB là cơ sở dữ liệu phân tán, vì vậy tính khả dụng cao, tỷ lệ mở rộng theo chiều ngang và phân phối địa lý được tích hợp sẵn và dễ sử dụng
  5. MongoDB miễn phí sử dụng. Các phiên bản phát hành trước ngày 16 tháng 10 năm 2018 được xuất bản theo AGPL. Tất cả các phiên bản được phát hành sau ngày 16 tháng 10 năm 2018, bao gồm các bản sửa lỗi cho các phiên bản trước, đều được xuất bản theo Giấy phép công cộng phía máy chủ (SSPL) v1

MongoDB được sử dụng bởi Thành phố Chicago, Codecademy, Google Tìm kiếm, Foursquare, IBM, Orange S. A. , The Gap, Inc. , Uber, Coinbase, Sega, Barclays, HSBC, eBay, Cisco, Bosch và Urban Outfitters

Định cấu hình MongoDB

Cấu hình khởi động được chỉ định trong tệp

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
9 và đến lượt tệp đó, bao gồm mọi tệp được tìm thấy trong thư mục 
echo "{password}" | docker secret create mongodb_root_password
0 kết thúc bằng 
echo "{password}" | docker secret create mongodb_root_password
1. Cài đặt trong các tệp trong thư mục này sẽ bổ sung và/hoặc ghi đè cài đặt trong 
echo "{password}" | docker secret create mongodb_root_password
2. Nếu muốn sử dụng cấu hình MongoDB tùy chỉnh, bạn có thể tạo tệp cấu hình thay thế của mình trong một thư mục trên máy chủ, sau đó gắn vị trí thư mục đó là 
echo "{password}" | docker secret create mongodb_root_password
3 bên trong bộ chứa MongoDB

Nếu 

echo "{password}" | docker secret create mongodb_root_password
4 là đường dẫn và tên của tệp cấu hình tùy chỉnh, thì bạn có thể bắt đầu vùng chứa 
echo "{password}" | docker secret create mongodb_root_password
5 của mình bằng đường dẫn thư mục của tệp cấu hình tùy chỉnh

Bạn chỉ phải gắn đường dẫn thư mục của tệp cấu hình tùy chỉnh như lệnh bên dưới

version: "3.7"
 
services:
  mongo:
    image: mongo
    volumes:
      - /my/custom:/etc/mongo

Điều này sẽ bắt đầu vùng chứa mới

echo "{password}" | docker secret create mongodb_root_password
5 trong đó phiên bản MongoDB sử dụng cài đặt khởi động kết hợp từ 
echo "{password}" | docker secret create mongodb_root_password
2 và 
echo "{password}" | docker secret create mongodb_root_password
3 với cài đặt từ cái sau được ưu tiên

MongoDB không có tệp cấu hình (____11)

Nhiều tùy chọn cấu hình có thể được chuyển dưới dạng cờ cho 

echo "{password}" | docker secret create mongodb_root_password
5. Điều này sẽ mang lại cho bạn sự linh hoạt để tùy chỉnh vùng chứa mà không cần tệp 
echo "{password}" | docker secret create mongodb_root_password
31

Ví dụ: nếu bạn muốn giảm dung lượng đĩa mà mỗi tệp nhị phân ~bin. cá thể mongod sử dụng, sử dụng oplogSize

Nếu bạn muốn thay đổi công cụ lưu trữ mặc định (Rocket Chat khuyên dùng MMAPv1, chúng tôi có thể chỉ định 

echo "{password}" | docker secret create mongodb_root_password
32 để thay đổi bộ nhớ mặc định từ WiredTiger thành MMAPv1

Từ MongoDB phiên bản 4. 0, công cụ lưu trữ mặc định là WiredTiger. Nếu bạn muốn sử dụng nó, không cần chỉ định nó trong 

echo "{password}" | docker secret create mongodb_root_password
33

Ngoài ra, chúng tôi cũng có thể chỉ định bộ bản sao mà không cần tệp cấu hình bằng cách sử dụng

echo "{password}" | docker secret create mongodb_root_password
33 trong cấu hình docker swarm

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'

Vui lòng kiểm tra trung tâm docker mongodb để biết thêm các tùy chọn cấu hình

Chuẩn bị môi trường MongoDB

Hãy bắt đầu tạo mật khẩu cho MongoDB Container bằng phương thức Docker Secrets

echo "{password}" | docker secret create mongodb_root_password

Chúng tôi sẽ sử dụng mạng docker 

echo "{password}" | docker secret create mongodb_root_password
35 mà chúng tôi đã tạo trước đây để triển khai vùng chứa MariaDB

Tạo 2 thư mục trong 

echo "{password}" | docker secret create mongodb_root_password
36 thư mục chứa dữ liệu MongoDB liên tục, 
echo "{password}" | docker secret create mongodb_root_password
37 và cả thư mục kết xuất, 
echo "{password}" | docker secret create mongodb_root_password
38

echo "{password}" | docker secret create mongodb_root_password
3____24
echo "{password}" | docker secret create mongodb_root_password
5

Vui lòng xem qua video dưới đây để tôi

Vui lòng xem video bên dưới để cài đặt GlusterFS trong Docker Swarm để duy trì dữ liệu

Khối lượng được sao chép GlusterFS trong Docker Swarm

MongoDB Docker Soạn thư

Tôi sẽ sử dụng 

echo "{password}" | docker secret create mongodb_root_password
39 để chuẩn bị tệp môi trường để triển khai WordPress. Tệp soạn thảo được gọi là YAML ( YAML là viết tắt của YAML Ain't Markup Language) và có phần mở rộng. yml hoặc. khoai mỡ

Bây giờ là lúc tạo một thư mục, 

echo "{password}" | docker secret create mongodb_root_password
40 trong 
echo "{password}" | docker secret create mongodb_root_password
41 thư mục để đặt tệp cấu hình docker-compose, tôi. e, 
echo "{password}" | docker secret create mongodb_root_password
42 tệp cho MongoDB

Sử dụng các lệnh dưới đây để tạo thư mục

echo "{password}" | docker secret create mongodb_root_password
0
echo "{password}" | docker secret create mongodb_root_password
1
echo "{password}" | docker secret create mongodb_root_password
2
echo "{password}" | docker secret create mongodb_root_password
3

Mở 

echo "{password}" | docker secret create mongodb_root_password
42 bằng trình chỉnh sửa nano bằng cách sử dụng 
echo "{password}" | docker secret create mongodb_root_password
44

Sao chép và dán mã dưới đây vào nó

Đây là tệp 

echo "{password}" | docker secret create mongodb_root_password
39 cho MongoDB

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
0

Triển khai MongoDB bằng Docker Compose

Bây giờ là lúc triển khai tệp docker-compose ở trên, 

echo "{password}" | docker secret create mongodb_root_password
42 bằng cách sử dụng lệnh bên dưới

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
1

Bạn có thể đặt cho nó bất kỳ tên nào cho ngăn xếp. Tôi chỉ đặt tên cho nó là 

echo "{password}" | docker secret create mongodb_root_password
40

Chúng ta có thể kiểm tra trạng thái của ngăn xếp bằng cách sử dụng 

echo "{password}" | docker secret create mongodb_root_password
48

Chuẩn bị môi trường thiết lập bản sao MongoDB

Không nên có các dịch vụ thiết lập bản sao mongo và mongo trong cùng một tệp cấu hình. Nếu chúng tôi triển khai cả hai dịch vụ, bộ bản sao hoặc mongodb sẽ không thành công. Tôi đã gặp sự cố và đó là lý do tại sao tôi quyết định triển khai chúng riêng biệt

Hãy chuẩn bị môi trường cho bộ bản sao

Sử dụng các lệnh dưới đây để tạo một thư mục để lưu trữ tệp cấu hình docker-compose cho bộ bản sao

echo "{password}" | docker secret create mongodb_root_password
0
version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
3
version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
4
version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
5

Mở 

echo "{password}" | docker secret create mongodb_root_password
49 bằng trình chỉnh sửa nano

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
6

Sao chép và dán mã dưới đây vào nó

Bản sao MongoDB Đặt Docker Compose

Đây là tệp cấu hình (

echo "{password}" | docker secret create mongodb_root_password
50) cho Bộ bản sao MongoDB

version: "3.7"

services:
  mongo:
    image: mongo
    command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
7

Trong tệp cấu hình, tôi đang tạo cơ sở dữ liệu cho Rocket Chat và khởi tạo Bộ bản sao MongoDB

Làm cách nào để chạy bộ bản sao MongoDB trên Docker?

Thiết lập vùng chứa của chúng tôi . Bắt đầu một vùng chứa từ một hình ảnh. -p 30001. 27017. Hiển thị cổng 27017 trong vùng chứa của chúng tôi, dưới dạng cổng 30001 trên máy chủ cục bộ. --name mongo1. đặt tên cho vùng chứa này là “mongo1” --net my-mongo-cluster. Thêm vùng chứa này vào mạng “my-mongo-cluster”

Làm cách nào để triển khai bộ bản sao MongoDB bằng Docker Compose?

Tạo bộ bản sao trong MongoDB bằng Docker Compose .
Kiến trúc bộ bản sao MongoDB
Ba phiên bản MongoDB đang chạy
Tắt phiên bản MongoDB
Chạy tập lệnh để tạo bộ bản sao mà không gặp rắc rối

Bạn sẽ thiết lập bộ bản sao MongoDB như thế nào?

Bạn có thể thiết lập Bộ bản sao mới trong MongoDB bằng các bước sau. .
Bước 1. Bắt đầu trường hợp mongod
Bước 2. Định cấu hình Bộ bản sao
Bước 3. Kích hoạt bản sao trong MongoDB
Bước 4. Thêm các phiên bản MongoDB vào các bộ bản sao
Bước 5. Xóa Instances khỏi Replica Sets
Bước 6. Kiểm tra quá trình sao chép

Bộ bản sao MongoDB là gì?

Bộ bản sao là một nhóm các phiên bản mongod duy trì cùng một bộ dữ liệu . Một bộ bản sao chứa một số nút mang dữ liệu và tùy chọn một nút trọng tài. Trong số các nút mang dữ liệu, một và chỉ một thành viên được coi là nút chính, trong khi các nút khác được coi là nút phụ.