Docker-soạn ví dụ MongoDB
Docker là một nền tảng phát triển mạnh mẽ cho phép người dùng chứa phần mềm. Các thùng chứa này có thể chạy trên bất kỳ máy nào, cũng như trong đám mây công cộng hoặc riêng tư. Nhờ thời gian chạy nhẹ của Docker và khả năng chạy các quy trình một cách cô lập, nhiều vùng chứa có thể chạy cùng lúc trên cùng một máy ảo hoặc máy chủ Show
MongoDB là một dịch vụ cơ sở dữ liệu NoSQL với hiệu suất liền mạch và các tùy chọn để mở rộng quy mô. Nó sử dụng mô hình lưu trữ giống như JSON và không yêu cầu lược đồ cơ sở dữ liệu được xác định trước. Trong thế giới thực, nhiều dữ liệu không có cấu trúc—nó không tuân theo một lược đồ cụ thể. Cơ sở dữ liệu NoQuery rất hữu ích để lưu trữ dữ liệu đó. Bạn chỉ cần nhập dữ liệu và các trường mới sẽ được tạo. Bạn cũng có thể để trống các trường trong trường hợp thiếu nhiều dữ liệu MongoDB có thể chạy trong Docker container. Có một hình ảnh chính thức có sẵn trên Docker Hub chứa phiên bản cộng đồng MongoDB, được sử dụng trong môi trường phát triển. Đối với sản xuất, bạn có thể tùy chỉnh tạo vùng chứa bằng phiên bản doanh nghiệp của MongoDB Nếu bạn muốn sử dụng cơ sở dữ liệu MongoDB của mình trên một số máy, sử dụng bộ chứa Docker để lưu trữ MongoDB là một cách tiếp cận tuyệt vời – bạn có thể dễ dàng tạo các phiên bản biệt lập mới. Hơn nữa, trong quá trình phát triển, việc khởi động phiên bản Docker sẽ dễ dàng hơn là định cấu hình máy chủ theo cách thủ công. Nếu bạn đang phát triển nhiều ứng dụng, bạn có thể bắt đầu nhiều vùng chứa cùng nhau bằng tệp 2Trong bài viết này, bạn sẽ tìm hiểu các phương pháp hay nhất để chạy bộ chứa MongoDB. Bạn cũng sẽ tìm hiểu cách lưu trữ ứng dụng Flask đơn giản và cách sử dụng khối lượng Docker để duy trì dữ liệu trong vùng chứa Docker Thành phần DockerTrước khi đi sâu vào chi tiết triển khai, hãy dành chút thời gian để giới thiệu một số khái niệm cơ bản của Docker. Tóm lại, bộ chứa Docker là các phần mềm độc lập đóng gói mọi thứ cần thiết để chạy một số mã, tệp, phần phụ thuộc, cấu hình, v.v. Docker daemon, 3, quản lý các Docker container và xử lý các yêu cầu thông qua Docker Engine APITriển khai MongoDB trong DockerBây giờ, điều đầu tiên bạn muốn làm để thiết lập triển khai MongoDB là cài đặt Docker, việc này có thể được thực hiện trực tiếp từ thiết bị đầu cuối của bạn. Tuy nhiên, nên sử dụng Docker Desktop để có trải nghiệm liền mạch Chạy MongoDB trong Docker ContainerĐể phát triển, tốt hơn là kết nối với một phiên bản MongoDB chạy bên trong bộ chứa Docker cục bộ (thay vì phiên bản được lưu trữ trên đám mây) để tiết kiệm tài nguyên. Bạn có thể kéo hình ảnh MongoDB mới nhất và chạy nó trong bộ chứa Docker. Để sản xuất, ứng dụng có thể kết nối với cơ sở dữ liệu được lưu trữ trên đám mây bằng MongoDB Atlas hoặc MongoDB Enterprise Server Trong quá trình phát triển, bạn sẽ sử dụng Docker để lưu trữ cục bộ phiên bản MongoDB. Bắt đầu bằng cách kéo hình ảnh cho phiên bản MongoDB mà bạn muốn bằng cách chỉ định thẻ phù hợp
Bạn có thể khởi động máy chủ MongoDB chạy phiên bản MongoDB mới nhất bằng Docker bằng lệnh sau
Điều này sẽ lấy hình ảnh chính thức mới nhất từ Docker Hub. Việc thêm cờ 4 sẽ đảm bảo rằng bộ chứa Docker chạy dưới dạng quy trình nền, tách biệt với trình bao. Thẻ 5 biểu thị cổng mà cổng container bị ràng buộc trở lại 27017. Bạn có thể kết nối với MongoDB trên 6Để thay đổi số cổng, bạn có thể thay đổi đối số cờ 5 thành 8 để sử dụng 9. Bạn cũng có thể sử dụng cờ 10 để đề cập đến bài đăng. Sử dụng hình ảnh mới nhất giúp bạn tránh được các lỗi phiên bản. Thực hiện điều này để chạy MongoDB trên 11 1Hoặc chọn cổng của riêng bạn 4Ngoài ra, nếu bạn kéo hình ảnh chỉ định thẻ phiên bản, hãy chạy bộ chứa Docker bằng lệnh này 5Sau đó sử dụng lệnh sau để mở trình bao MongoDB. Tôi đã sử dụng 12 làm tên vùng chứa tùy ý, mặc dù bạn có thể thay thế 12 bằng 14 hoặc bất kỳ tên vùng chứa nào khác mà bạn chọn 9Shell MongoDB tương tác của bạn sẽ trông như thế này Vỏ MongoDB tương tác cho vùng chứaLệnh 15 sẽ hiển thị tất cả cơ sở dữ liệu hiện có của bạn. Tại đây, bạn có cơ sở dữ liệu quản trị, cấu hình và cục bộ, ban đầu trống. Để biết chi tiết về các chức năng khác nhau có sẵn từ trình bao, hãy nhập “trợ giúp”. Điều này sẽ cung cấp danh sách một số phương pháp cơ sở dữ liệu có sẵn, bao gồm các lệnh để hiển thị các bộ sưu tập và thông tin của cơ sở dữ liệuLệnh MongoDbBạn có thể tương tác với phiên bản MongoDB được lưu trữ cục bộ của mình thông qua trình bao này trực tiếp từ thiết bị đầu cuối của bạn. Bạn cũng có thể mở CLI vùng chứa bằng các nút trên Docker Desktop máy tính để bàn docker. chạy containerĐể kiểm tra nhật ký vùng chứa của bạn, bạn có thể sử dụng lệnh 16 theo sau là tên vùng chứa của bạn 2Đầu ra nhật ký docker cho vùng chứaBạn cũng có thể kiểm tra nhật ký của MongoDB bằng lệnh 16 4Bằng cách sử dụng cờ 18, nhật ký vùng chứa sẽ được cập nhật trên thiết bị đầu cuối của bạn theo thời gian thựcKết nối từ một vùng chứa khácKhi máy chủ MongoDB đang chạy trên Docker, bạn cũng có thể chạy ứng dụng Flask trong Docker. Có một Dockerfile trong kho lưu trữ chứa một bộ lệnh để xây dựng hình ảnh Docker và chạy nó. Trong trường hợp này, kết nối cả hai vùng chứa với mạng Docker được chia sẻ là một ý tưởng hay. Điều này sẽ đảm bảo tính bảo mật, vì bạn sẽ không cần xuất bản các cổng MongoDB lên máy chủ. Để tạo một mạng và kết nối bộ chứa MongoDB với nó, hãy sử dụng các lệnh sau 6Vùng chứa khách hàng của bạn cũng nên tham gia vào 19. Vùng chứa của bạn sẽ có thể tham chiếu vùng chứa MongoDB bằng cách sử dụng URL 40Dữ liệu liên tục với khối lượngKhi chạy MongoDB trong Docker, một trong những thách thức chính là lưu trữ. Thông thường, người dùng muốn có thể duy trì dữ liệu có chọn lọc cho vùng chứa. Một phương pháp hay là sử dụng các ổ đĩa để đảm bảo dữ liệu vẫn tồn tại ngay cả sau khi vùng chứa bị dừng hoặc trình nền Docker được khởi động lại. Theo mặc định, hình ảnh MongoDB lưu trữ dữ liệu của nó trong thư mục 41. Bạn có thể gắn ổ đĩa vào vị trí này để kích hoạt tính bền bỉ của dữ liệu. Sử dụng lệnh này để tạo vùng chứa 14 với khối lượng Docker có tên 43 được gắn trên đó 0Nếu bạn muốn kiểm tra khối lượng của mình, bạn có thể thực hiện bằng lệnh 44Bạn có thể kiểm tra tất cả các ổ đĩa hiện có để hiển thị ổ đĩa nào được đính kèm với vùng chứa nào bằng cách sử dụng 45 1 2Định cấu hình máy chủ của bạnNếu bạn muốn thay đổi cấu hình MongoDB mặc định, bạn có thể sử dụng cờ 46 để chuyển vị trí tới tệp văn bản có cấu hình. File cấu hình theo định dạng YAML. Đây là lệnh để chỉ định một vị trí cấu hình nhất định 3Bảo vệBạn cũng có thể thêm xác thực vào bộ chứa MongoDB của mình để đảm bảo an toàn dữ liệu. Điều này sẽ vô hiệu hóa nhân viên trái phép kết nối với máy chủ của bạn Thêm tài khoản người dùng của bạn bằng cách đặt tên người dùng và mật khẩu bằng các biến môi trường trong quá trình tạo vùng chứa. Sử dụng cờ 47 để chỉ định các biến môi trường 48 và 49 4Do đó, cơ sở dữ liệu sẽ được bắt đầu với tài khoản người dùng 50. Người dùng mới này sẽ được cấp quyền root. Vì người dùng root sẽ có quyền kiểm soát truy cập mọi thứ, điều quan trọng là phải cung cấp một mật khẩu an toàn. Trong trường hợp này, bạn có thể chuyển vị trí tệp bí mật làm đầu vào cho biến môi trường 51. Mật khẩu của bạn sẽ không hiển thị khi sử dụng 52 để xem các biến môi trường vùng chứa. Để chạy MongoDB với Docker bằng tên người dùng và mật khẩu của bạn, hãy sử dụng mã bên dưới 5Ứng dụng Flask để quản lý cơ sở dữ liệu sinh viênTrong phần này, bạn sẽ tạo một ứng dụng lưu trữ đơn giản, nơi MongoDB sẽ lưu trữ các bản ghi điểm của sinh viên. Để bắt đầu, bạn sẽ muốn mở Docker Desktop và xóa các vùng chứa mà bạn vừa tạo, vì bây giờ bạn sẽ tạo thêm một vài vùng chứa nữa. Sau đó, trong ứng dụng web Flask, bạn sẽ thêm chức năng sau
Điều này sẽ giúp đảm bảo rằng cơ sở dữ liệu đang hoạt động như mong đợi. Bắt đầu bằng cách sao chép kho lưu trữ GitHub này 6Kho lưu trữ này bao gồm bốn phần chính
Để truy cập máy chủ từ ứng dụng Flask được lưu trữ cục bộ của bạn, bạn sẽ cần xuất một cổng bằng cờ 5
Phiên bản MongoDB của bạn sẽ có thể truy cập được vào ngày 58. Để trực quan hóa và phân tích nó bằng GUI, bạn có thể sử dụng MongoDB CompassĐể chạy ứng dụng Flask, trước tiên bạn cần cài đặt Python—bất kỳ phiên bản Python3 nào cũng được Tiếp theo, cài đặt các phụ thuộc bằng cách chạy đoạn mã sau trong thiết bị đầu cuối của bạn 8Để dễ phát triển, bạn sẽ chạy ứng dụng Python bên ngoài vùng chứa và chạy Mongo bên trong một. Hãy tiếp tục và chạy ứng dụng Python Flask với 59 ngay bây giờChạy ứng dụng FlaskSử dụng giao diện Flask, bạn có thể thêm, cập nhật và xem các bản ghi. Để bắt đầu, hãy truy cập 90Cơ sở dữ liệu điểm học sinhĐiền vào một bản ghi mới và nhấp vào Gửi điểm. Trang này sẽ xác nhận trình của bạn Bài nộp mới được chấp nhận cho sinh viênTiếp theo, quay lại trang chủ và nhấp vào Nhận điểm của tất cả học sinh. Trang này sẽ hiển thị tất cả hồ sơ học sinh của bạn Danh sách học sinh và điểmThêm một vài mục khác và đảm bảo rằng ứng dụng đang hoạt động như mong đợi. Bạn cũng có thể chỉnh sửa bài nộp cho một học sinh nhất định. Sau khi thêm một vài bản ghi, cơ sở dữ liệu của bạn có thể trông như thế này Danh sách học sinh và điểmĐối với vùng chứa này, bạn đã không đính kèm một ổ đĩa. Vì vậy, khi bạn tạo một vùng chứa mới từ cùng một hình ảnh MongoDB, nó sẽ bắt đầu với một cơ sở dữ liệu trống. Truy cập Docker Desktop và dừng container đang chạy 14. Bạn cũng có thể sử dụng 92 để dừng container khỏi bến. Để xem danh sách các container đang chạy và thông tin chi tiết của chúng, hãy sử dụng 93. Sau đó, tạo một vùng chứa khác cho MongoDB từ thiết bị đầu cuối 9Bây giờ, hãy truy cập 90 và nhấp vào Nhận điểm của tất cả học sinhLần này, bạn sẽ thấy rằng tất cả dữ liệu trước đó đã bị mất và thay vào đó, bạn đang bắt đầu với một cơ sở dữ liệu trống. Đây là nơi khối lượng có ích Dừng container 95. Tạo một thùng chứa có tên là 96 và đính kèm một ổ đĩa vào đó. Mọi dữ liệu được tạo trong vòng đời của vùng chứa đó sẽ bị hủy sau khi vùng chứa bị xóa. Tuy nhiên, bạn muốn duy trì dữ liệu trên máy cục bộ của mình, vì vậy hãy tiếp tục và gắn ổ đĩa bằng cách sử dụng đối số 97 0Sau đó, truy cập 90 và thêm một số bản ghi mới vào cơ sở dữ liệu sinh viênCơ sở dữ liệu hồ sơ học sinh (Tania, Sam và Beth)Khi bạn dừng vùng chứa này và tạo một vùng chứa mới, bạn sẽ cho phép vùng chứa mới sử dụng dung lượng của vùng chứa trước đó. Dừng vùng chứa này và tạo một vùng chứa mới có thẻ 99 theo sau là tên của vùng chứa có âm lượng bạn muốn gắn vào vùng chứa này—trong trường hợp này là 96 1Bây giờ, khi bạn truy cập vào 90, bạn sẽ nhận thấy rằng tất cả dữ liệu bạn đã thêm trước đó vẫn còn nguyên vẹn, do Docker đã đính kèm âm lượng sau khi bắt đầu. Các ổ vẫn tồn tại cho đến khi bạn xóa chúng bằng lệnh 22 hoặc bằng cách sử dụng cờ 23 khi hủy một thùng chứa bằng 24Nếu ứng dụng của bạn đang chạy bên trong một vùng chứa, bạn có thể chạy MongoDB như một phần của cùng mạng Docker như ứng dụng của bạn bằng cách sử dụng 25. Với phương pháp này, bạn sẽ kết nối với MongoDB trên 26 từ các ứng dụng được đóng gói khác trong mạngPhần kết luậnTrong bài viết này, bạn đã lưu trữ máy chủ MongoDB của mình bằng Docker. Bạn đã tạo một ứng dụng Flask để kiểm tra xem máy chủ có hoạt động như mong đợi hay không và bạn đã học cách đính kèm ổ đĩa vào vùng chứa của mình để xem cách các vùng chứa hoạt động khi có và không có chúng Có rất nhiều lợi ích khi sử dụng vùng chứa như một phần cuộc sống hàng ngày của bạn với tư cách là nhà phát triển phần mềm. Bộ chứa đảm bảo tính nhất quán giữa các hệ điều hành và bằng cách sử dụng chúng, bạn có thể đảm bảo tính đồng nhất trong toàn nhóm. Triển khai vùng chứa tương đối dễ dàng vì môi trường sản xuất và quá trình phát triển của bạn sẽ nhất quán. Bằng cách chạy MongoDB trong Docker, bạn có thể tạo các vùng chứa riêng biệt mới từ cùng một hình ảnh và bạn có thể kết nối ổ đĩa được liên kết với vùng chứa này với vùng chứa khác Earthly là một công cụ tự động hóa để quản lý tất cả các thành phần, hình ảnh và vùng chứa Docker của bạn. Với Earthly, bạn có thể thực hiện tất cả các bản dựng của mình trong các thùng chứa và đảm bảo tính đồng nhất giữa các máy Trong khi bạn ở đây Earthly là khung CI/CD dễ dàng. Soumi Bardhan Tôi đang làm việc trong lĩnh vực thị giác máy tính và phát triển AI. Tôi viết bài kỹ thuật trên phương tiện. Đã hai lần tham gia mùa tài liệu của Google và yêu thích mã nguồn mở Làm cách nào để sử dụng MongoDB với Docker Compose?Danh sách việc cần làm . Kéo hình ảnh MongoDB Tạo một tệp để bắt đầu cơ sở dữ liệu và người dùng được xác thực Viết docker-compose tập tin Đăng nhập vào MongoDB bằng thông tin đăng nhập đã tạo Làm cách nào để chạy MongoDB bằng Docker?Chạy MongoDB trong Docker Container
. Để sản xuất, ứng dụng có thể kết nối với cơ sở dữ liệu được lưu trữ trên đám mây bằng MongoDB Atlas hoặc MongoDB Enterprise Server. Điều này sẽ lấy hình ảnh chính thức mới nhất từ Docker Hub. pull the latest MongoDB image and run it in a Docker container. For production, the application can connect to a cloud-hosted database using the MongoDB Atlas or MongoDB Enterprise Server. This will pull the latest official image from Docker Hub.
Làm cách nào để viết Dockerfile cho MongoDB?1. 1 Tạo tệp Docker. Tạo một tệp có tên Dockerfile trong bất kỳ thư mục nào trên máy cục bộ. $ cd ~/Johnny $ mkdir Docker $ cd Docker $ vim Dockerfile. . 1. 2 Tạo Image với Dockerfile. Mở Docker terminal, điều hướng đến thư mục chứa Dockerfile Làm cách nào để kết nối MongoDB với Docker nodejs?Phần 1. Cài đặt Docker trên máy của bạn. Thiết lập kho lưu trữ. . 2. Thiết lập một ứng dụng node js đơn giản 3. Tạo Dockerfile cho ứng dụng 4. Viết cấu hình Docker Compose 5. mô hình cầy mangut 6. Kết nối cơ sở dữ liệu MongoDB 7. Tạo API để nhận và lưu trữ người dùng. . Phần 8. Chạy docker-compose để build ứng dụng |