Pendahuluan
MongoDB adalah solusi database NoSQL yang praktis. Itu tidak menggunakan struktur data tetap, sehingga skalabel dan ideal untuk mengelola beban kerja dinamis. MongoDB sangat cocok untuk lingkungan terdistribusi, seperti container Docker.
Menggunakan Docker dan image container MongoDB resmi dapat mempersingkat dan menyederhanakan proses penerapan database secara signifikan.
Tutorial ini akan menunjukkan kepada Anda cara men-deploy instance MongoDB pada container Docker .
Prasyarat
- Pengguna dengan sudo hak istimewa
- Akses ke baris perintah
- Instance Docker yang sedang berjalan
Unduh Gambar MongoDB untuk Docker
Ikuti petunjuk langkah demi langkah di bawah untuk mengunduh gambar MongoDB resmi terbaru untuk Docker.
- Layanan Docker Anda harus aktif dan berjalan. Anda dapat dengan cepat memeriksa status saat ini dengan memasukkan perintah berikut di terminal Anda:
sudo service docker status
Dalam contoh ini, layanan Docker aktif dan berjalan.
- Lanjutkan untuk mengunduh image Docker resmi terbaru untuk database MongoDB:
sudo docker pull mongo
Gambar menunjukkan bahwa sistem menggunakan latest
tandai secara default.
Untuk mengunduh versi MongoDB tertentu, gunakan perintah yang sama yang ditambahkan dengan tag versi. Misalnya:
sudo docker pull mongo:4.2.2
- Buat daftar gambar di repositori Docker Anda dengan perintah berikut:
sudo docker images
Antarmuka mengonfirmasi bahwa gambar MongoDB sekarang tersedia.
Menerapkan Wadah MongoDB
Secara default, MongoDB menyimpan data di /data/db direktori dalam wadah Docker. Untuk mengatasinya, pasang direktori dari sistem host yang mendasarinya ke wadah yang menjalankan database MongoDB. Dengan cara ini, data disimpan di sistem host Anda dan tidak akan dihapus jika instance container gagal.
- Buat /mongodata direktori pada sistem host:
sudo mkdir -p /mongodata
- Mulai container Docker dengan
run
perintah menggunakan gambar mongo. /data/db direktori dalam wadah dipasang sebagai /mongodata pada tuan rumah. Selain itu, perintah ini mengubah nama wadah menjadi mongodb :
sudo docker run -it -v mongodata:/data/db --name mongodb -d mongo
-it
– Menyediakan shell interaktif ke container Docker.
-v
– Gunakan opsi ini untuk melampirkan /mongodata volume host ke /data/db volume kontainer.
-d
– Memulai container sebagai proses latar belakang.
--name
– Nama wadah.
- Setelah server MongoDB mulai berjalan dalam sebuah wadah, periksa statusnya dengan mengetik:
sudo docker ps
Nomor port default adalah 27017, seperti yang dapat dilihat pada output.
- Secara opsional, Anda dapat menentukan port MongoDB secara eksplisit:
sudo docker run -it -v mongodata:/data/db -p 27017:27017 --name mongodb -d mongo
- Selalu periksa log Docker untuk melihat rangkaian peristiwa setelah melakukan perubahan:
sudo docker logs mongodb
Log memberikan banyak informasi berguna.
Mulai Terminal Docker Interaktif (Bash Shell) untuk Mengelola Basis Data MongoDB
- Penampung saat ini berjalan dalam mode terpisah . Hubungkan ke wadah menggunakan terminal interaktif sebagai gantinya:
sudo docker exec -it mongodb bash
- Mulai shell MongoDB dengan mengetikkan
mongo
di terminal interaktif.
Shell MongoDB diluncurkan dan prompt siap menerima perintah Anda.
- Daripada hanya mengetik
mongo
, Anda juga dapat menentukan host dan port tertentu dengan mengetik:
mongo -host localhost -port 27017
Dengan shell MongoDB, sekarang Anda dapat membuat database, menambahkan koleksi, atau mengelola dokumen individual.
Cara Keluar dari MongoDB dan Shell Interaktif
Ketik exit
untuk meninggalkan shell MongoDB dan kemudian exit
sekali lagi untuk meninggalkan shell Interaktif.
Sebagai alternatif, Anda dapat mengetik quit()
atau gunakan Ctrl-C untuk keluar dari shell.
Menghentikan dan Memulai Ulang Basis Data MongoDB
docker stop
command adalah perintah singkat dan jelas yang berhenti menjalankan instance container:
sudo docker stop mongodb
Periksa daftar container Docker yang sedang berjalan dengan mengetik:
sudo docker ps
Kontainer dimulai dengan menggunakan docker start
perintah:
sudo docker start mongodb
Daftar container yang sedang berjalan sekarang mengkonfirmasi bahwa database MongoDB telah dimulai sekali lagi:
sudo docker ps