Docker - Cài đặt MongoDB

Xin chào các bạn tương lai của Docker và MongoDB! Tôi rất vui mừng được làm hướng dẫn viên của bạn trong hành trình thú vị vào thế giới của việc container hóa và cơ sở dữ liệu. Là một người đã dạy khoa học máy tính trong nhiều năm, tôi có thể告诉 bạn rằng việc thành thạo những công nghệ này sẽ mở ra một thế giới mới đầy possibilities cho bạn. Hãy cùng bắt đầu!

Docker - Setting MongoDB

Hiểu các nguyên tắc cơ bản

Docker là gì?

Hãy tưởng tượng bạn đang chuyển đến một ngôi nhà mới. Thay vì đóng gói mọi thứ riêng lẻ, bạn có thể chỉ cần nhấc cả phòng của mình và đặt nó xuống tại nơi mới? Đó chính là điều Docker làm cho các ứng dụng phần mềm. Nó đóng gói tất cả những gì cần thiết để chạy một ứng dụng - mã, runtime, công cụ hệ thống, thư viện - vào một container nhỏ gọn.

MongoDB là gì?

Bây giờ, hãy tưởng tượng một tủ hồ sơ khổng lồ, linh hoạt có thể lưu trữ mọi loại thông tin với hình dạng và kích thước khác nhau. Đó là MongoDB trong một nutshell. Nó là một cơ sở dữ liệu không bắt buộc dữ liệu của bạn vào các bảng cứng nhắc như các cơ sở dữ liệu truyền thống. Thay vào đó, nó để dữ liệu của bạn tự do như cách bạn có thể ghi chú trên một mảnh giấy.

Cài đặt Docker

Trước khi chúng ta có thể bắt đầu hành trình MongoDB của mình, chúng ta cần chắc chắn rằng con thuyền Docker của chúng ta đã sẵn sàng.

Cài đặt Docker

  1. Truy cập trang web chính thức của Docker (docker.com).
  2. Tải xuống phiên bản phù hợp với hệ điều hành của bạn.
  3. Theo dõi hướng dẫn cài đặt - nó dễ dàng như ăn bánh pie!

Xác minh việc cài đặt Docker

Sau khi cài đặt, hãy chắc chắn rằng mọi thứ đều ổn:

docker --version

Nếu bạn thấy điều gì đó như Docker version 20.10.14, build a224086, bạn đã sẵn sàng!

Kéo MongoDB Image

Bây giờ động cơ Docker của chúng ta đang chạy, hãy lấy image MongoDB.

docker pull mongo

Lệnh này giống như đi đến siêu thị Docker và lấy một gói MongoDB có sẵn từ kệ. Dễ ợt!

Chạy MongoDB trong một Container

Lệnh chạy cơ bản

Đã đến lúc thổi sinh khí vào container MongoDB của chúng ta:

docker run --name some-mongo -d mongo

Hãy phân tích này:

  • docker run: Điều này cho Docker biết để tạo và khởi động một container mới.
  • --name some-mongo: Chúng ta đang đặt tên cho container của mình.
  • -d: Điều này chạy container trong chế độ tách biệt, có nghĩa là nó chạy trong nền.
  • mongo: Đây là image chúng ta sử dụng để tạo container.

Lệnh chạy nâng cao

Đối với những người thích phiêu lưu, đây là một lệnh mạnh mẽ hơn với một số tính năng bổ sung:

docker run --name my-mongo -p 27017:27017 -v /path/on/host:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password -d mongo

Woah, đó là một câu dài! Hãy phân tích nó:

  • -p 27017:27017: Điều này ánh xạ cổng 27017 của container đến cổng 27017 của máy chủ.
  • -v /path/on/host:/data/db: Điều này tạo một volume, liên kết một thư mục trên máy chủ với thư mục dữ liệu của container.
  • -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password: Những này đặt các biến môi trường để tạo một tài khoản admin.

Kết nối đến MongoDB

Sử dụng Mongo Shell

Bây giờ container MongoDB của chúng ta đã hoạt động, hãy nói xin chào:

docker exec -it my-mongo mongo

Lệnh này giống như gõ cửa container và yêu cầu vào để trò chuyện. Các flag -it làm cho trải nghiệm trở nên tương tác, giống như nếu bạn đang sử dụng MongoDB được cài đặt trực tiếp trên máy của bạn.

Sử dụng một MongoDB Client

Đối với những người thích giao diện đồ họa (vì hãy thừa nhận, đôi khi chúng ta cần những nút đẹp), bạn có thể sử dụng một client MongoDB như Robo 3T hoặc MongoDB Compass. Chỉ cần kết nối đến localhost:27017, và bạn đã vào được!

Các thao tác cơ bản trong MongoDB

Bây giờ chúng ta đã kết nối, hãy chơi một chút.

Tạo một cơ sở dữ liệu

use myAwesomeDB

Điều này giống như nói với MongoDB, "Hey, tôi muốn làm việc trong tủ hồ sơ mới叫做 myAwesomeDB."

Chèn dữ liệu

db.users.insertOne({name: "John Doe", age: 30, email: "[email protected]"})

Hãy tưởng tượng điều này như đặt một tệp mới vào tủ hồ sơ. Chúng ta đang thêm một người dùng vào bộ sưu tập users.

Truy vấn dữ liệu

db.users.find({name: "John Doe"})

Điều này giống như hỏi MongoDB, "Bạn có thể tìm tất cả các tệp về John Doe cho tôi không?"

Quản lý Container MongoDB của bạn

Dừng container

docker stop my-mongo

Điều này giống như nói với MongoDB, "Nghỉ ngơi đi, bạn. Chúng ta đã xong cho bây giờ."

Khởi động container

docker start my-mongo

Và khi bạn sẵn sàng quay lại làm việc, lệnh này giống như nói, "Được rồi, nghỉ giải lao đã xong. Hãy quay lại làm việc!"

Xóa container

docker rm my-mongo

Nếu bạn quyết định không cần thiết lập MongoDB này nữa, lệnh này tương đương với "Cảm ơn bạn đã phục vụ, nhưng đã đến lúc chia tay."

Bảng phương thức MongoDB

Dưới đây là bảng các phương thức MongoDB phổ biến:

Phương thức Mô tả
insertOne() Chèn một tài liệu duy nhất vào bộ sưu tập
insertMany() Chèn nhiều tài liệu vào bộ sưu tập
find() Truy vấn một bộ sưu tập để tìm tài liệu
updateOne() Cập nhật một tài liệu duy nhất trong bộ sưu tập
updateMany() Cập nhật nhiều tài liệu trong bộ sưu tập
deleteOne() Xóa một tài liệu duy nhất từ bộ sưu tập
deleteMany() Xóa nhiều tài liệu từ bộ sưu tập
aggregate() Thực hiện các thao tác aggreagation trên một bộ sưu tập

Kết luận

Và thế là bạn đã có nó, các bạn! Chúng ta đã cùng nhau hành trình qua các bước cơ bản để cài đặt MongoDB với Docker, từ kéo image đến chạy các thao tác cơ bản. Nhớ rằng, như với bất kỳ kỹ năng mới nào, sự thành thạo đến từ việc thực hành. Đừng ngại thử nghiệm, làm vỡ things, và học hỏi từ quá trình.

Khi chúng ta kết thúc, tôi nhớ lại một học sinh từng nói với tôi rằng họ cảm thấy như mình "mất tích trên biển" khi bắt đầu với Docker và MongoDB. Đến cuối khóa học, họ nói rằng họ cảm thấy như một thuyền trưởng của chính con thuyền của mình. Tôi hy vọng hướng dẫn này sẽ giúp bạn vẽ ra con đường riêng của bạn qua những công nghệ thú vị này.

Tiếp tục hành trình, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ! Thế giới của cơ sở dữ liệu container hóa là của bạn. Bây giờ, hãy tiếp tục MongoDB với Docker như một chuyên gia!

Credits: Image by storyset