MongoDB là một cơ sở dữ liệu NoSQL mã nguồn mở sử dụng các tài liệu và lược đồ giống JSON hỗ trợ phát triển lặp lại nhanh chóng. Kiến trúc mở rộng của nó phổ biến với các nhà phát triển ứng dụng sử dụng các phương pháp linh hoạt để di chuyển nhanh chóng. Vì nó phổ biến trong cộng đồng linh hoạt, sử dụng MongoDB với Docker là một cách tiếp cận tuyệt vời cho quy trình làm việc tích hợp và phát triển liên tục (CI/CD).

Trước khi bạn bắt đầu

Để hoàn thành các ví dụ trong hướng dẫn này, trước tiên hãy thiết lập và bảo mật Linode đã cài Docker. Bạn có thể thực hiện việc này bằng cách sử dụng Ứng dụng Docker Marketplace hoặc thông qua cài đặt thủ công. Hướng dẫn cho cả hai phương pháp được cung cấp bên dưới.

Hướng dẫn này giả định rằng bạn đã quen với giao diện dòng lệnh (CLI) trên hệ thống giống Unix và sử dụng nó để làm việc với các chương trình.

Thiết lập Linode với Docker

Ứng dụng Docker Marketplace

Bạn có thể nhanh chóng thiết lập Linode an toàn, được cập nhật với Docker Marketplace App. Để biết hướng dẫn, hãy xem hướng dẫn của chúng tôi về Cách triển khai Docker với Marketplace Apps . Đối với mục đích của hướng dẫn này, chúng tôi khuyên bạn nên triển khai Docker Marketplace App với Docker Options :

  • Người dùng sudo giới hạn được tạo cho Linode
  • Mật khẩu cho người dùng sudo bị giới hạn
  • Khóa công khai SSH của người dùng sudo giới hạn sẽ được sử dụng để truy cập Linode
  • Vô hiệu hóa quyền truy cập root qua SSH? (có)

Cài đặt thủ công

  1. Làm quen với hướng dẫn Bắt đầu của chúng tôi và hoàn tất các bước để cập nhật Linode của bạn.
  2. Hoàn tất các phần Bảo mật máy chủ của chúng tôi để tạo tài khoản người dùng chuẩn, tăng cường quyền truy cập SSH và xóa các dịch vụ mạng không cần thiết.
  3. Cài đặt Docker trên Linode của bạn bằng cách làm theo các bước trong hướng dẫn của chúng tôi về Cách cài đặt và sử dụng Docker trên Ubuntu và Debian .

Xác minh cài đặt Docker

Xác minh Docker đã được cài đặt trên Linode của bạn:

docker --version

Bạn có thể mong đợi kết quả tương tự như sau:

Docker version 20.10.8, build 3967b7d

Ghi chú

Hướng dẫn này được viết cho người dùng không phải root. Các lệnh yêu cầu quyền nâng cao được thêm tiền tố sudo. Nếu bạn không quen với sudolệnh này, hãy truy cập hướng dẫn Người dùng và Nhóm của chúng tôi .

Tất cả các tệp cấu hình phải được chỉnh sửa với quyền cao hơn. Hãy nhớ bao gồm sudotrước khi chạy trình soạn thảo văn bản của bạn.

Cách cài đặt MongoDB Docker Container

Docker giúp việc tạo ảnh MongoDB trở nên rất dễ dàng vì họ lưu giữ phiên bản được bảo trì chính thức tại Docker Hub . Để cài đặt:

1.Tải xuống và cài đặt hình ảnh MongoDB từ Docker Hub:

sudo docker pull mongo

Kết quả sau khi tải hình ảnh xuống sẽ như sau:

Using default tag: latest
latest: Pulling from library/mongo
16ec32c2132b: Pull complete
6335cf672677: Pull complete
cbc70ccc8ebe: Pull complete
0d1a3c6bd417: Pull complete
960f3b9b27d3: Pull complete
aff995a136b4: Pull complete
4249be7550a8: Pull complete
cc105ff5aa3c: Pull complete
82819807d07a: Pull complete
81447d2c233f: Pull complete
Digest: sha256:54d24682d00278f64bf21ff62b7ee62b59dae50f65139831a884b345922b0f8a
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest

Ghi chú: Lệnh này sẽ kéo phiên bản mới nhất theo mặc định (như được nêu trong dòng đầu tiên của đầu ra). Để kéo một phiên bản cụ thể, hãy thêm thẻ cho phiên bản đó vào lệnh. Ví dụ: để cài đặt MongoDB 4.4.6, hãy nhập docker pull mongo:4.4.6.

2.Đảm bảo hình ảnh đã được cài đặt:

sudo docker images

Kết quả đầu ra sẽ trông như thế này:

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mongo        latest    07630e791de3   2 weeks ago   449MB

3.Tạo một vùng chứa hình mongoảnh ở chế độ tách biệt để nó vẫn có thể tương tác trên hệ thống của bạn:

sudo docker run --name mongo_example -d mongo

4.Đảm bảo container đang chạy:

sudo docker ps

Kết quả đầu ra sẽ trông như thế này:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS       NAMES
1f88d00b9e78   mongo     "docker-entrypoint.s…"   4 seconds ago   Up 4 seconds   27017/tcp   mongo_example

MongoDB hiện đang chạy như một Docker Container.

Cách đăng nhập vào MongoDB trên Container

1.Nhập lệnh sau để mở dấu nhắc bash trong vùng chứa:

sudo docker exec -it mongo_example bash

2.Khi đến dấu nhắc lệnh của container, hãy nhập mongoshshell:

mongosh

Từ mongoshshell, bạn có thể kiểm tra các truy vấn và hoạt động trực tiếp với cơ sở dữ liệu của mình.

Ghi chú: Shell cũ mongođã không còn được sử dụng trong MongoDB v5.0, nhưng vẫn có thể truy cập được như một giải pháp thay thế cho mongosh.

Cách cấu hình MongoDB trong Docker Container

Để biết chi tiết về cách cấu hình MongoDB, hãy xem hướng dẫn sử dụng MongoDB . Tuy nhiên, mongodcờ (daemon chính của MongoDB) thường được đặt để cấu hình MongoDB và docker runlệnh được thiết kế để truyền mongodcờ.

Ví dụ, để tắt công cụ tạo tập lệnh, hãy thêm cờ vào cuối lệnh như sau:

sudo docker run --name mongo_example2 -d mongo --noscripting

Một ví dụ khác, để tắt công cụ tạo tập lệnh và bật IPv6, hãy nhập lệnh sau:

sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6

Cách lưu dữ liệu MongoDB từ Docker Container

Vì MongoDB đang chạy trên Docker Container, dữ liệu của nó sẽ không tồn tại khi thoát (vì nó lưu dữ liệu trong thư mục /data/db trong chính container). Nếu bạn cần dữ liệu MongoDB tồn tại, bạn phải tạo và gắn Docker Volume hoặc gắn thư mục từ hệ thống máy chủ của mình.

Thêm Docker Volume vào MongoDB Container

Việc tạo và thêm một ổ đĩa để container sử dụng rất đơn giản nếu bạn đã quen với Docker.

1.Tạo một Docker Volume để lưu trữ dữ liệu bằng cách nhập thông tin sau:

sudo docker volume create mongo_volume

2.Sau đó, tạo docker runlệnh để đính kèm ổ đĩa vào vùng chứa và ánh xạ nó vào /data/dbthư mục vùng chứa bằng cách nhập:

sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo

Gắn thư mục hệ thống máy chủ vào vùng chứa Docker MongoDB

Nếu bạn muốn dữ liệu được lưu trữ và truy cập bên ngoài Docker, bạn có thể sử dụng thư mục trên hệ thống lưu trữ của mình.

Để gắn thư mục hệ thống máy chủ:

1.Tạo một thư mục trên hệ thống của bạn (nếu bạn chưa có thư mục nào để sử dụng) ở cấp độ gốc của hệ thống bằng cách nhập:

sudo mkdir -p /mongo_data_directory

2.Sau đó thực hiện docker runlệnh để gắn thư mục và ánh xạ nó tới /data/dbbằng cách nhập:

sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo

Đọc thêm

Học cách sử dụng MongoDB trên Docker là điều cần thiết cho quy trình làm việc CI/CD và phát triển lặp lại nhanh chóng. Tiếp tục với một số thông tin về MongoDB của Docker tại Docker Hub là một người bạn đồng hành tuyệt vời cho bài viết này.

Để tìm hiểu thêm về mongodcác tùy chọn được truyền vào docker run, hãy xem phần mongod Thành phần gói MongoDB trong Sổ tay hướng dẫn MongoDB.

Ngoài ra, nếu bạn có kế hoạch nâng cấp lên MongoDB Enterprise, hãy xem mục Cài đặt MongoDB Enterprise với Docker trong Sổ tay hướng dẫn MongoDB để biết hướng dẫn mongod.

Thông tin thêm

Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.

Nguồn: https://www.linode.com/docs/guides/set-up-mongodb-on-docker/