Docker : Kenapa dan Bagaimana ?
Programmer selalu harus siap dengan environment atau ketersediaan aplikasi pendukung dalam mengerjakan suatu project. Seperti misalnya programmer Backend PHP, beliau harus sudah menginstall aplikasi pendukung supaya bisa melakukan pengkodingan di komputernya. Namun seringkali proses develop nya lancar, tetapi ketika melakukan deploy atau perilisan aplikasi yang sudah susah payah dibangun, menghadapi masalah. Masalah sederhana yang sering kali muncul adalah perbedaannya environment yang ada di komputer sang programmer dengan environment yang ada pada server hosting atau server tempat melakukan deploy. Semakin banyak perbedaan environment sang programmer dengan environment server, maka semakin banyak juga yang harus diperhatikan lagi. Karena hal itu bisa saja membuat kodingan yang sebelumnya sudah dibuat perlu banyak perubahan untuk menyesuaikan dengan environment yang ada pada server. Selain itu, masalah serupa akan terjadi lagi jika ternyata pengerjaan dari project tersebut ingin didelegasikan atau diserahkan ke programmer lain.
Daripada harus mengulang - ulang hal merepotkan yang sama, kenapa tidak kita buat saja sebuah file yang berisi konfigurasi tentang kebutuhan environment dalam membangun project tersebut. Konfigurasi bisa dibuat supaya menghasilkan environment yang sama dengan kondisi yang ada pada server. Selain itu, jika kita ingin mendelegasikan project tersebut kepada programmer lain, maka programmer lain itu hanya perlu implementasikan saja konfigurasi yang sudah dibuat dan dia akan secara otomatis memiliki environment yang sama dengan yang sudah di tuliskan di dalam konfigurasi tersebut. Dengan begitu maka masalah tentang perbedaan environment tidak akan terjadi. Proses deploy tidak perlu khawatir, karena kita memiliki environment yang sama dengan yang ada pada server. Proses delegasi project tidak perlu khawatir, karena programmer lainnya juga akan mendapatkan environment yang sama.
Docker adalah platform perangkat lunak yang memungkinkan pengembang untuk mengemas, mendistribusikan, dan menjalankan aplikasi dalam lingkungan kontainer. Kontainer adalah unit standar perangkat lunak yang mencakup kode dan semua dependensinya, memastikan aplikasi dapat berjalan dengan konsisten di berbagai lingkungan. Docker memungkinkan pengembang untuk mengisolasi aplikasi mereka dari infrastruktur yang mendasarinya, membuatnya mudah dipindahkan antar lingkungan pengembangan, pengujian, dan produksi.
Sesuai dengan penjelasan tentang Docker diatas, kita bisa memanfaatkan Docker ini sebagai tools untuk menyelesaikan masalah yang sudah disebutkan sebelumnya.