Docker Compose
Docker merupakan sebuah program yang menyederhanakan proses pengelolaan aplikasi di dalam kontainer, sedikit mirip dengan virtual machine. Bedanya kontainer ini lebih ringan dan ramah sumber daya. Dengan adanya Docker akan memudahkan developer dalam membuat lingkungan aplikasi yang terisolasi dari komputer utama.
Dalam sebagian kasus terdapat aplikasi yang bergantung dengan aplikasi lain, sehingga untuk mengatur kontainer dari tiap aplikasi agar dapat memulai, berkomunikasi, dan menutup secara bersamaan akan menjadi hal yang sulit.
Dengan Docker Compose, developer dapat menggunakan ini untuk membangun lingkungan aplikasi multi-kontainer sesuai dengan definisi yang telah ditetapkan dalam file YAML. Sehingga berkat adanya Docker Compose ini kontainer-kontainer tadi dapat berbagi volume penyimpanan dan jaringan yang sama.
MongoDB dan Mongo Express
Untuk membuat lingkungan MongoDB dan Mongo Express, buat file baru bernama docker-compose.yaml
. Kemudian isi file tersebut dengan skrip berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3.8"
services:
mongodb:
image: mongo:4.4.5
container_name: mongodb
ports:
- 27017:27017
volumes:
- data:/data
environment:
- MONGO_INITDB_ROOT_USERNAME=rootuser
- MONGO_INITDB_ROOT_PASSWORD=rootpass
mongo-express:
image: mongo-express:0.54.0
container_name: mongo_express
restart: always
ports:
- 8081:8081
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=rootuser
- ME_CONFIG_MONGODB_ADMINPASSWORD=rootpass
- ME_CONFIG_MONGODB_SERVER=mongodb
volumes:
data: {}
networks:
default:
name: mongodb_network
Kemudian ketik perintah docker-compose -f docker-compose.yaml up
atau docker compose up
di terminal agar docker menjalankan aplikasi yang telah didefinisikan di docker-compose.yaml
tadi. Kalau imagenya belum ada di komputer maka akan di pull terlebih dahulu. Untuk menghapus semua data di aplikasi kontainer tersebut dapat memasukkan perintah docker compose down
. Menjalankan docker compose lewat background atau mode detach dapat memasukkan perintah docker compose up -d
Jika service sudah berjalan, silahkan mengunjungi localhost:8081 maka akan terlihat halaman Mongo Express.
Menghubungkan MongoDB Shell ke Database
Untuk mengakses database di MongoDB dapat menggunakan GUI Client seperti Mongo Express diatas. Selain itu juga dapat menggunakan Mongo Shell. Perintah untuk melakukan koneksi ke database menggunakan Mongo Shell adalah mongo mongodb://localhost:27017 -u rootuser -p rootpass
Kemudian untuk menggunakan Mongo Shell terlebih dahulu kita harus mengetahui container id dari mongo image tersebut. Caranya adalah ketikan perintah docker ps
nanti akan muncul process image apa saja yang sedang berjalan. Seperti gambar di bawah
Pada gambar di atas container id dari image mongo adalah e920b8e5b424
. Setelah mengetahui container id-nya maka ketikan perintah docker exec -it e920b8e5b424 bash
agar masuk ke container tersebut menggunakan shell bash.
Barulah setelah itu mengetikan perintah untuk melakukan koneksi ke database yaitu mongo mongodb://localhost:27017 -u rootuser -p rootpass
maka akan masuk ke Mongo Shell
Setelah masuk ke Mongo Shell maka kita dapat melakukan query-query ke database MongoDB tersebut. Contohnya adalah menampilkan semua database yang ada di kontainer dapat memasukkan perintah show dbs;
Pada Mongo Shell untuk membersihkan layar dapat menekan tombol CTRL + L