Setelah kita berhasil menginstal server Ubuntu kita dengan Docker dan Nginx. Saatnya kita memanfaatkan aplikasi tersebut untuk mengembangkan Development Environment aplikasi kita pada Server. Kita akan mencoba meng-install stack aplikasi PHP, MySQL dan PHPMyAdmin sebagai tools untuk mengelola basis data MySql kita. Untuk melanjutkan pengembangan ini, pertama kita pahami konsep network pada Docker.
Pada dasarnya ketika suatu Container dibuat, Docker juga membuat network default untuk Container tersebut agar dapat berkomunikasi dengan Container lain. Namun kita juga dapat membuat network tersendiri agar suatu Container tidak dapat diakses oleh Container lain di luar network-nya. Dengan network ini, kita dapat melakukan klasifikasi dan klastering microservice kita.
Dengan penggunaan network. Kita dapat mengisolasi akses Container satu dengan Container lainnya agar lebih aman. Selain itu penggunaan network dapat membantu kita mengidentifikasi struktur microservice yang kita buat.
Setelah mengetahui konsep dasar dari network, mari kita mulai untuk mengembangkan environment yang kita butuhkan. Ada beberapa tahap untuk proses pengembangan ini yaitu, pembuatan network utama, pembuatan container mysql, pembuatan container phpmyadmin, dan yang terakhir pembuatan container php. Pada proses terakhir kita akan mencoba apakah semua Docker Container yang kita rancang dapat terhubung satu sama lain.
1. Pembuatan Network Utama
Network ini akan kita gunakan untuk menghubungkan microservice yang akan kita buat. Sesungguhnya secara default kita dapat memanfaatkan network yang disediakan Docker, namun agar mendalami proses pemahaman mengenai Network pada Docker. Kita akan membuat network sendiri untuk microservice kita.
Untuk melihat daftar network yang telah ada pada Docker, ketikan perintah :
docker network ls
Setelah memanggil perintah di atas, maka anda dapat melihat daftar Docker Network yang tersedia
NETWORK ID NAME DRIVER SCOPE
0e880c5cc6ac bridge bridge local
95dff74c8bbb host host local
3ac5ad6e4fc1 none null local
Kemudian buatlah network baru untuk nantinya kita tempati sebagai network proyek awal kita dengan
docker network create -d bridge main-network
Setelah selesai, makan jika anda panggil perintah “docker network ls” maka anda akan melihat network baru anda
NETWORK ID NAME DRIVER SCOPE
0e880c5cc6ac bridge bridge local
95dff74c8bbb host host local
307b9c0d7bfa main-network bridge local
3ac5ad6e4fc1 none null local
Setelah membuat network baru, mari kita lanjutkan langkah berikutnya.
2. Membuat Container MySQL
Untuk proses pembuatan Docker Container MySql akan saya buat artikel tersendiri. Karena area of coverage dari hal ini lumayan luas. Silahkan cek artikel berikut untuk mengetahui cara membuat Docker Container MySQL : Membuat Docker Container MySQL dengan Docker Volume.
3. Pembuatan Container PHPMyAdmin
Proses pembuatan Container PHPMyAdmin dipisah dari Container MySQL untuk memudahkan anda jika suatu saat ingin menyalakan atau menghidupkan PHPMyAdmin tanpa harus memberi pengaruh pada Container MySQL. Untuk tutorial dan caranya, dapat di lihat di artikel Membuat Docker Container PHPMyAdmin dengan Docker Compose
4. Pembuatan Container PHP
Pembuatan Docker Container PHP ini menggunakan fitur Docker Bind Mounts. Artinya direktori lokal Docker anda, akan dihubungkan dengan direktori internal Docker Container. Untuk tutorial lengkap mengenai Pembuatan Docker Container PHP, dapat anda lihat pada artikel Membuat Docker Container PHP dengan Docker Use Bind Mounts