Mình đã hướng dẫn các bạn cách cài đặt MongoDB server trên Windows và macOS trong các bài viết trước. Việc sử dụng Docker Compose để cài đặt MongoDB server sẽ làm mọi thứ dễ dàng hơn nhiều. Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt MongoDB server và Mongo Express, một công cụ MongoDB client dạng web dùng để query data trong MongoDB server, sử dụng Docker Compose các bạn nhé!
Đầu tiên thì Docker Image của MongoDB server các bạn có thể tìm thấy tại đây: https://hub.docker.com/_/mongo. Còn Docker Image của Mongo Express, các bạn cũng có thể tìm thấy tại đây: https://hub.docker.com/_/mongo-express/.
Tập tin Docker Compose để cài đặt MongoDB server và Mongo Express, các bạn có thể định nghĩa như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
services: mongodb: image: mongo container_name: mongodb volumes: - ./mongodb_data:/data ports: - 27017:27017 mongo-express: image: mongo-express container_name: mongo-express depends_on: - mongodb ports: - "8081:8081" environment: - ME_CONFIG_MONGODB_SERVER=mongodb - ME_CONFIG_MONGODB_PORT=27017 - ME_CONFIG_BASICAUTH_USERNAME=khanh - ME_CONFIG_BASICAUTH_PASSWORD=123456 networks: huongdanjava: driver: bridge |
Với MongoDB server, mình định nghĩa tên của container là mongodb, mount thư mục /data bên trong container ra bên ngoài máy host với thư mục “./mongodb_data” để khỏi bị mất dữ liệu khi mình tạo mới container, expose port 27017 của MongoDB server ra bên ngoài.
Với Mongo Express, ngoài định nghĩa container name, expose port 8081 ra bên ngoài, mình còn khai báo thêm việc chạy container mongo-express sẽ phụ thuộc vào container mongodb. Các bạn cũng cần phải định nghĩa thêm các biến môi trường:
- ME_CONFIG_MONGODB_SERVER trỏ đến MongoDB server
- ME_CONFIG_MONGODB_PORT là port mà MongoDB server đang chạy
- ME_CONFIG_BASICAUTH_USERNAME và ME_CONFIG_BASICAUTH_PASSWORD dùng để định nghĩa credential đăng nhập vào giao diện web của Mongo Express.
Bây giờ, nếu các bạn chạy command “docker compose up” trong thư mục chứa tập tin Docker Compose với nội dung trên, các bạn sẽ thấy kết quả như sau:
Đi đến địa chỉ http://localhost:8081, các bạn sẽ thấy kết quả như sau:
Sử dụng username và password mà các bạn đã đăng ký trong tập tin Docker Compose trên, để đăng nhập, các bạn sẽ thấy kết quả như sau:
Như vậy là chúng ta đã cài đặt MongoDB server và Mongo Express sử dụng Docker Compose thành công rồi đó các bạn!