Pendahuluan
MongoDB adalah database NoSQL yang sangat populer dan banyak digunakan dalam pengembangan aplikasi modern. Menggunakan Docker untuk menjalankan MongoDB membuat pengelolaan database lebih mudah dan fleksibel, terutama dengan Docker Compose yang memungkinkan pengaturan dan konfigurasi container secara efisien.
Artikel ini akan membahas cara menjalankan MongoDB menggunakan Docker Compose tanpa volume, serta bagaimana melakukan export dan import data MongoDB menggunakan alat bawaan mongoexport dan mongoimport di dalam container Docker.
Konfigurasi Docker Compose untuk MongoDB
Untuk menjalankan MongoDB tanpa volume menggunakan Docker Compose, berikut adalah contoh file docker-compose.yml:
version: '3.8'
services:
mongodb:
image: mongo:latest
container_name: mongodb-container
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 1FH6N1Ran9N4
ports:
- "27017:27017"
Penjelasan Konfigurasi:
- image: mongo:latest: Menggunakan image MongoDB versi terbaru.
- container_name: Nama container MongoDB.
- restart: unless-stopped: Container akan restart otomatis kecuali dihentikan secara manual.
- environment: Mengatur username dan password root untuk autentikasi MongoDB.
MONGO_INITDB_ROOT_USERNAME: Username root yang akan digunakan untuk autentikasi MongoDB.MONGO_INITDB_ROOT_PASSWORD: Password root MongoDB.
- ports: Memetakan port 27017 (port default MongoDB) dari container ke host.
Setelah file docker-compose.yml siap, jalankan perintah berikut untuk memulai MongoDB:
docker-compose up -d
Container MongoDB akan berjalan di latar belakang dan dapat diakses melalui port 27017.
Export dan Import Data di MongoDB
MongoDB menyediakan dua alat penting untuk mengelola data: mongoexport untuk mengekspor data dari MongoDB, dan mongoimport untuk mengimpor data ke dalam MongoDB. Keduanya dapat dijalankan di dalam container Docker menggunakan perintah docker exec.
1. Export Data dari MongoDB
Untuk mengekspor data dari MongoDB, gunakan mongoexport. Data dapat diekspor dalam format JSON atau CSV. Berikut adalah langkah-langkah untuk mengekspor data dari MongoDB yang berjalan di dalam container.
Langkah-langkah Export Data:
- Jalankan perintah export di dalam container MongoDB:
docker exec -it mongodb-container mongoexport --db mydatabase --collection mycollection --out /data/backup/mycollection.json -u root -p 1FH6N1Ran9N4 - Jika perlu, salin file export dari container ke host:
docker cp mongodb-container:/data/backup/mycollection.json ./mycollection.json
Penjelasan:
docker exec -it mongodb-container: Menjalankan perintah di dalam container MongoDB yang sedang berjalan.mongoexport: Alat bawaan MongoDB untuk mengekspor data dari koleksi.--db mydatabase: Menentukan nama database yang akan diekspor.--collection mycollection: Menentukan koleksi yang akan diekspor.--out /data/backup/mycollection.json: Lokasi file JSON tempat data akan disimpan di dalam container.-u root -p 1FH6N1Ran9N4: Username dan password untuk autentikasi.
File mycollection.json sekarang berisi data yang diekspor dari MongoDB dan dapat digunakan untuk backup atau migrasi.
2. Import Data ke MongoDB
Untuk mengimpor data ke MongoDB, gunakan mongoimport. File JSON atau CSV yang diekspor sebelumnya dapat diimpor kembali ke dalam MongoDB menggunakan perintah berikut.
Langkah-langkah Import Data:
- Jika file JSON ada di host, salin file tersebut ke dalam container MongoDB:
docker cp ./mycollection.json mongodb-container:/data/backup/mycollection.json - Jalankan perintah import di dalam container:
docker exec -it mongodb-container mongoimport --db mydatabase --collection mycollection --file /data/backup/mycollection.json -u root -p 1FH6N1Ran9N4
Penjelasan:
mongoimport: Alat bawaan MongoDB untuk mengimpor data ke koleksi.--db mydatabase: Menentukan nama database tempat data akan diimpor.--collection mycollection: Menentukan koleksi tempat data akan dimasukkan.--file /data/backup/mycollection.json: Lokasi file JSON di dalam container yang berisi data yang akan diimpor.-u root -p 1FH6N1Ran9N4: Username dan password untuk autentikasi.
Dengan perintah ini, data dari file JSON akan diimpor ke koleksi mycollection dalam database mydatabase.
Kesimpulan
Menggunakan Docker Compose untuk menjalankan MongoDB memungkinkan pengaturan yang lebih efisien dan terstruktur. Selain itu, MongoDB menyediakan alat yang kuat untuk mengelola data dengan perintah mongoexport dan mongoimport. Perintah ini memudahkan proses backup dan restore data, memungkinkan pengelolaan yang lebih baik di lingkungan berbasis Docker.
Dengan langkah-langkah di atas, MongoDB dapat dijalankan dengan cepat, dan data dapat diekspor dan diimpor dengan mudah menggunakan container Docker. Ini memberikan fleksibilitas dalam pengelolaan data MongoDB baik untuk pengembangan maupun lingkungan production.