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ế
- Cụm bầy Docker{. rank-math-link} với GlusterFS là công cụ bền bỉ
- 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
- 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
- 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
- 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
- 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
- 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 MongoDBNếu
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ứaecho "{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ỉnhecho "{password}" | docker secret create mongodb_root_password
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
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ênecho "{password}" | docker secret create mongodb_root_password
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
31Ví 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
32 để thay đổi bộ nhớ mặc định từ WiredTiger thành MMAPv1echo "{password}" | docker secret create mongodb_root_password
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
33Ngoà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 swarmversion: "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 MariaDBTạ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
38echo "{password}" | docker secret create mongodb_root_password
3____24echo "{password}" | docker secret create mongodb_root_password
5Vui 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 MongoDBSử dụng các lệnh dưới đây để tạo thư mục
echo "{password}" | docker secret create mongodb_root_password
0echo "{password}" | docker secret create mongodb_root_password
1echo "{password}" | docker secret create mongodb_root_password
2echo "{password}" | docker secret create mongodb_root_password
3Mở
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
44Sao 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 MongoDBversion: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
0Triể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ướiversion: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
1Bạ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à
40echo "{password}" | docker secret create mongodb_root_password
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
48Chuẩ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
0version: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
3version: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
4version: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
5Mở
echo "{password}" | docker secret create mongodb_root_password
49 bằng trình chỉnh sửa nanoversion: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
6Sao 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 MongoDBversion: "3.7"
services:
mongo:
image: mongo
command: 'mongod --oplogSize 128 --replSet rs0 ----storageEngine=mmapv1'
7Trong 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