GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menyebarkan dan Mengelola Wadah Docker MongoDB

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 dengan ps 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, jalankan docker logs perintah, seperti ini:sudo docker logs docker-container . Ganti docker-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, ganti mongodb 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?


Docker
  1. Cara Menyebarkan Wadah nginx dengan Docker di Linode

  2. Cara menginstal Docker dan menyebarkan LAMP Stack

  3. Cara membuat Gambar Docker dari Wadah dan File Docker

  1. Apa itu containerd, Dan Bagaimana Hubungannya dengan Docker dan Kubernetes?

  2. Cara Menyebarkan PostgreSQL sebagai Wadah Docker

  3. Cara mencadangkan dan memulihkan wadah Docker

  1. Cara Menyebarkan PostgreSQL di Docker Container

  2. Cara Menyebarkan dan Menjalankan Redis di Docker

  3. Cara Menjeda dan Melanjutkan Wadah Docker