MongoDB adalah database dokumen open-source yang populer yang menyediakan kinerja tinggi dan fleksibilitas tinggi. Tetapi apakah Anda sudah mencoba memasukkan database MongoDB untuk proyek Anda? Jika tidak, maka Anda siap menerima hadiah!
Dalam tutorial ini, Anda akan mempelajari cara menerapkan, mengamankan, dan mengelola MongoDB secara efektif dengan Docker. Jadi, baca terus dan jadilah master Anda sendiri dalam menerapkan container Docker MongoDB!
Prasyarat
Tutorial ini terdiri dari demonstrasi langsung. Untuk mengikuti, pastikan Anda memiliki yang berikut:
- Mesin Ubuntu – Tutorial ini menggunakan Ubuntu 20.04 LTS
- Pengguna dengan
sudo
izin - Docker – Tutorial ini menggunakan Docker 20.10.9
Mengunduh Gambar Docker MongoDB
Sebelum Anda dapat menerapkan dan mengelola wadah Docker MongoDB, Anda harus terlebih dahulu mengunduh gambar MongoDB dari Docker Hub sehingga Anda dapat menjalankan wadah MongoDB secara lokal.
Jalankan docker
perintah di bawah ini untuk mengunduh gambar MongoDB Community Edition(CE) (pull mongo
), yang dihosting oleh Docker Hub. Versi terbaru dari gambar ini pada saat penulisan adalah 4.2.
sudo docker pull mongo
Seperti yang Anda lihat di bawah, perintah secara otomatis menarik versi terbaru gambar dan menandainya sebagai terbaru .
Sekarang jalankan docker images
perintah di bawah ini untuk menampilkan semua gambar yang tersedia di server Anda.
sudo docker images
Di bawah, Anda dapat melihat gambar MongoDB ditandai sebagai terbaru .
Menyebarkan Wadah Docker MongoDB
Dari gambar MongoDB yang Anda unduh, Anda sekarang dapat menggunakan wadah MongoDB. Anda akan menginisialisasi wadah MongoDB Anda dengan mongo yang dapat dieksekusi, membuat direktori data. Anda kemudian akan menentukan pemetaan antara area data container Docker dan mesin host.
1. Jalankan mkdir
perintah di bawah ini untuk membuat direktori data bernama mongodata
untuk menyimpan database dan log MongoDB.
sudo mkdir -p /mongodata
2. Selanjutnya, jalankan docker run
perintah di bawah ini untuk membuat wadah yang diberi nama mymongo
. Selain itu, wadah dimulai dengan pseudo-TTY interaktif (-it
), jika output harus ditampilkan saat memulai wadah.
Akhirnya, direktori yang baru dibuat mongodata terikat (-v
) ke direktori internal, /data/db . -d
opsi memulai wadah dalam mode terpisah, sehingga berjalan sebagai proses latar belakang dan mengembalikan keluaran konsol saat dibuat.
Sistem secara otomatis membuat /data/db direktori ketika Anda menjalankan wadah untuk menyimpan data dari perubahan yang Anda buat dalam wadah. Direktori ini berjalan dalam mode yang mirip dengan read-only dan memungkinkan penyimpanan data persisten pada sistem host.
sudo docker run -it -v mongodata:/data/db --name mymongo -d mongo
Setelah perintah selesai dengan sukses, Anda akan melihat output seperti di bawah ini.
3. Terakhir, jalankan docker ps
perintah di bawah ini untuk mengidentifikasi ID penampung dan memeriksa statusnya. docker ps
perintah menampilkan semua informasi tentang penampung yang sedang berjalan.
docker ps
perintah sebanding denganps
biasa perintah di Linux.
sudo docker ps
Pada output yang ditunjukkan di bawah ini, Anda dapat melihat Ports bagian yang mencantumkan semua port yang ditetapkan ke wadah untuk mendengarkan koneksi masuk.
Dalam contoh ini, port 27017 dipetakan ke host. Output di bawah ini menunjukkan bahwa Anda dapat mengakses instance MongoDB pada container ini melalui localhost:27017 dari tuan rumah.
Mungkin Anda ingin melihat file log
mymongo
container untuk menentukan apa yang terjadi pada database/instance mongo Anda ketika terjadi kesalahan. Jika demikian, jalankandocker logs
perintah, seperti ini:sudo docker logs docker-container
. Gantidocker-container
dengan nama nama container Docker Anda.
Memasang Docker MongoDB Container ke Bash Shell
Anda baru saja menerapkan wadah Docker MongoDB, tetapi bagaimana Anda mengelolanya? Lakukan dengan melampirkan wadah Docker ke shell Bash dengan docker exec
perintah terlebih dahulu.
Melampirkan wadah Anda ke shell Bash sangat penting karena wadah saat ini berjalan dalam mode terpisah (berjalan di latar belakang). Dan jika penampung berjalan di latar belakang, penampung tidak akan menerima input atau output apa pun.
Jalankan docker exec
perintah di bawah ini untuk melampirkan wadah Anda (mymongo
) ke shell Bash.
sudo docker exec -it mymongo bash
Ketika perintah selesai, prompt Anda akan berubah menjadi sesuatu seperti di bawah ini. Nomor alfanumerik unik (77782fa95314 ) adalah ID penampung.
ID Penampung sangat penting untuk menghindari konflik penamaan dan secara efektif mengidentifikasi penampung antar host, jadi cobalah untuk tidak mengubahnya.
Sekarang jalankan mongo
perintah tanpa argumen apa pun untuk masuk ke shell MongoDB di wadah (mymongo). Shell MongoDB adalah tempat Anda menjalankan kueri/perintah mongo.
Setelah Anda berada di wadah, Anda dapat menjalankan perintah apa pun tanpa
sudo
awalan karena Anda sekarang adalah pengguna root di dalam wadah. Setiap perubahan yang Anda buat di penampung tidak akan memengaruhi sistem host Anda.
mongo
Dengan melihat prompt yang ditunjukkan di bawah ini, Anda dapat mengetahui bahwa Anda sekarang berada di shell MongoDB.
Jika Anda lebih suka melihat semua perintah yang tersedia di shell MongoDB, jalankan
help
perintah, seperti yang ditunjukkan di bawah ini.
Membuat Pengguna Administratif MongoDB
Setelah Anda menerapkan server MongoDB di dalam wadah Docker, Anda sekarang akan membuat pengguna MongoDB administratif. Pengguna administratif memungkinkan Anda terhubung ke server MongoDB dan mengelola database.
1. Masuk ke shell MongoDB lagi dan jalankan use
perintah di bawah ini untuk terlebih dahulu beralih ke admin
basis data. Melakukannya memberikan pengguna administratif dengan izin yang tepat untuk mengelola database.
use admin
Salin dan tempel kode berikut di prompt MongoDB untuk membuat pengguna administratif.
Kode di bawah ini menggunakan db.createUser()
metode untuk membuat pengguna dengan peran administratif. Nama pengguna (user
) dan kata sandi (pwd
) di bawah ini adalah hardcode, yang dapat Anda ubah berdasarkan preferensi Anda.
# Create an administrative user
db.createUser(
{
# Sets the username for the administrative user
user: "ata",
# Sets the password for the administrative user
pwd: "password123",
# Sets the roles for the administrative user
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Jika kode berfungsi, Anda akan mendapatkan pesan seperti di bawah ini di prompt MongoDB Anda.
3. Jalankan quit()
kueri di bawah ini untuk keluar dari shell MongoDB.
quit()
4. Terakhir, jalankan mongo
berikut ini perintah untuk menguji pengguna administratif yang Anda buat (ata
) dengan menghubungkan ke server MongoDB. Masukkan kata sandi untuk pengguna administratif saat diminta.
mongo -u ata -p --authenticationDatabase admin
Seperti yang Anda lihat di bawah, server MongoDB mencetak versi server MongoDB jika Anda berhasil terhubung ke server.
Mungkin Anda ingin menguji pengguna administratif lebih lanjut. Jika demikian, jalankan perintah di bawah ini untuk menampilkan semua pengguna di database.
use admin
show users
Di bawah ini, Anda dapat melihat pengguna administratif yang Anda buat ada dalam daftar.
Membuat Basis Data MongoDB
Mengelola wadah Docker MongoDB tidak akan lengkap tanpa membuat database. Anda akan membuat database MongoDB baru tempat Anda menyimpan data melalui shell MongoDB.
1. Dari dalam sesi interaktif dalam wadah Docker, jalankan show dbs
perintah di bawah ini untuk mendaftar semua database di server Anda.
show dbs
Di bawah ini, Anda dapat melihat database admin, database konfigurasi, dan database lokal. Shell MongoDB membuat database ini secara default di setiap server MongoDB.
2. Selanjutnya, jalankan use
perintah di bawah ini untuk membuat database baru. Ganti <database_name>
dengan nama database pilihan Anda. Tapi untuk contoh ini, databasenya bernama linux
.
use
query mengalihkan database saat ini ke database yang Anda tentukan jika ada. Jika tidak,use
query membuat database baru dan secara otomatis beralih ke database tersebut.
use <database_name>
3. Jalankan kembali show dbs
perintah seperti yang Anda lakukan sebelumnya (langkah pertama) untuk melihat apakah database yang Anda buat ada.
show dbs
Masih tidak melihat database (linux) yang baru dibuat dalam daftar? MongoDB membangun database hanya ketika Anda menyimpan data di dalamnya untuk pertama kalinya. Data tersebut dapat berupa kumpulan atau bahkan dokumen.
4. Sekarang salin/tempel kode di bawah ini ke shell MongoDB dan tekan Enter .
Kode di bawah ini membuat koleksi baru bernama linux_version
, yang dapat Anda ubah menjadi nama yang Anda inginkan. Koleksi tersebut berisi data dalam format pasangan kunci:nilai.
# Using insertOne method to insert data
db.linux_version.insertOne(
# Key:value pairs to insert to the database
{ "debian" : "11",
"ubuntu" : "20.04",
"rocky linux" : "8.4",
"alma linux" : "8"
}
)
Pada output di bawah ini, Anda dapat melihat linux_version
koleksi dibuat dan dilengkapi dengan ObjectID .
5. Jalankan show collections
perintah untuk melihat daftar koleksi dan melihat apakah koleksi baru linux_version
ada.
show collections
Anda dapat melihat di bawah bahwa Anda telah berhasil membuat linux_version koleksi.
6. Terakhir, jalankan perintah di bawah ini untuk melihat dan mengonfirmasi data yang Anda masukkan di linux_version
koleksi sudah benar. Metode pretty() memungkinkan Anda melihat data dalam format yang dapat dibaca manusia.
db.linux_version.find().pretty()
Jika Anda pernah mengubah data dalam database, gunakan
Update()
metode.
Anda dapat melihat output di bawah ini dalam format yang lebih mudah dibaca.
Memulai Ulang Wadah Docker MongoDB
Sekarang, Anda telah berhasil menjalankan wadah Docker MongoDB. Tetapi bagaimana jika Anda tidak lagi menggunakan wadah itu, atau bagaimana jika wadah itu tidak berfungsi? Beberapa perintah Docker dapat membantu menghentikan, memulai ulang, dan bahkan menghapus wadah Docker MongoDB.
1. Jalankan docker ps
perintah di bawah ini untuk mendaftar semua container yang sedang berjalan.
sudo docker ps
Catat nama dan ID wadah wadah yang ingin Anda hentikan, mulai ulang, atau hapus, seperti yang ditunjukkan di bawah ini.
2. Selanjutnya, jalankan salah satu dari docker stop
perintah di bawah ini untuk menghentikan container MongoDB yang sedang berjalan.
sudo docker stop mymongo
sudo docker stop container-ID
3. Jalankan kembali docker ps
perintah seperti yang Anda lakukan sebelumnya (langkah pertama) untuk memeriksa apakah wadah telah dimatikan.
sudo docker ps
Seperti yang Anda lihat di bawah, penampung tidak ada dalam daftar penampung yang sedang berjalan, yang menunjukkan bahwa Anda telah berhasil menghentikan penampung.
4. Sekarang jalankan salah satu dari docker start
perintah di bawah ini jika Anda memutuskan untuk memulai ulang wadah.
sudo docker start mymongo
sudo docker start container-ID
5. Terakhir, jalankan kembali docker ps
perintah untuk melihat apakah wadah sedang berjalan.
sudo docker ps
Mungkin Anda tidak lagi menggunakan wadah. Jika demikian, Anda harus menghentikan wadah terlebih dahulu dan menjalankan
rm
perintah untuk menghapus wadah, seperti ini:sudo docker container rm mongodb
. Mirip dengan contoh sebelumnya, gantimongodb
dengan nama penampung atau ID penampung.
Kesimpulan
Dalam tutorial ini, Anda telah belajar cara menerapkan dan mengelola wadah Docker MongoDB dengan membuat pengguna administrator untuk membuat database dan menyimpan data ke dalamnya. Anda menyadari bahwa Anda dapat menghentikan, memulai ulang, dan menghapus container yang tidak lagi Anda perlukan untuk menjaga image Docker tetap bersih.
Menyebarkan dan mengelola MongoDB dengan Docker adalah langkah pertama untuk memanfaatkan teknologi containerization dan mengurangi overhead. Mengapa tidak menggunakan langkah pertama ini untuk menjelajahi MongoDB lebih lanjut dan melihat bagaimana wadah Docker MongoDB dapat membantu proyek Anda?