Pendahuluan
Docker merupakan sebuah platform perangkat lunak yang dirancang untuk mempermudah dalam membuat, menyebarkan, dan menjalankan aplikasi dengan menggunakan container. Container memungkinkan developer dapat mengemas aplikasi dengan semua bagian yang dibutuhkannya, seperti librari dan dependensi lainnya, dan menerapkannya sebagai satu paket portabel. Dengan demikian, pengembang dapat yakin bahwa aplikasi akan berjalan di mesin Linux lainnya tanpa harus melakukan pengaturan khusus yang mungkin dimiliki mesin yang mungkin berbeda dari mesin yang digunakan untuk menulis dan menguji kode.
Docker sebetulnya mirip dengan virtual machine, hanya saja docker tidak membuat sistem operasi virtual secara keseluruhan. Docker mengizinkan aplikasi untuk menggunakan kernel Linux yang sama dengan sistem tempat mereka berjalan dan hanya memerlukan aplikasi pendukung yang belum berjalan di komputer host. Hal Ini menjadikan adanya peningkatan kinerja yang signifikan dan mengurangi ukuran aplikasi.
Kita dapat membuat docker image dengan cara mendefinisikan kebutuhan aplikasi pada file Dockerfile, kemudian membuildnya atau menggunakan docker image yang sudah jadi yang berada pada Docker Hub. Docker Hub merupakan layanan yang disediakan oleh Docker untuk mengupload atau mendownload docker image yang telah dibuat.
Kentungan menggunakan docker:
- Memudahkan kita dalam proses scale up
- Memudahkan kita ketika ingin migrasi server
- Dapat mengatur konfigurasi tertentu terhadap sebuah aplikasi tanpa khawatir mengganggu aplikasi lain yang masih dalam 1 server
Studi kasus Installasi WordPress pada Docker Container
Prasyarat:
- Memiliki akses terminal ke server vps
- Server vps sudah terinstall docker dan docker-compose
Docker Compose merupakan perangkat perangkat lunak yang digunakan untuk mendefinisikan dan menjalakankan multi-container yang menggunakan docker container. Data Image dan konfigurasi yang dibutuhkan didefinisikan pada file YAML dengan extension yaml atau yml.
Kita dapat memastikan docker dan docker-compose sudah terinstall, dengan cara mengetikan perintah `docker -v` dan `docker-compose -v` pada terminal vps anda seperti yang terlihat pada gambar di bawah ini.
Perintah tersebut digunakan untuk menampilkan versi dari docker dan docker-compose yang sudah terinstall.
Ketika anda menggunakan layanan Private Cloud dari IDCloudHost, prasyarat diatas sudah otomatis terpenuhi tanpa harus melakukan installasi yang ribet dan yang paling penting dengan harga yang terjangkau.
Apabila anda belum menggunakan layanan tersebut, anda bisa langsung melakukan pendaftaran Private Cloud. Setelah itu, silakan topup saldo untuk aktivasi akun dan langsung saja masuk ke Console Private Cloud IDCloudHost untuk melakukan pembuatan server virtual anda. Pada dashboard pilih App Catalog, pada pilihan choose OS: Docker, tentukan size sesuai anggaran anda, masukkan username dan password, ssh key dan nama resource. Setelah itu, klik tombol create untuk memulai proses pembuatan server. Tunggu hingga proses selesai, kemudian klik menu compute, pilih server yang telah dibuat, lalu pilih ssh untuk mengakses server virtual anda.
Akan muncul terminal yang mengkonfirmasi apakah proses akan dilanjutkan atau tidak, dan anda akan diminta untuk memasukkan password.
Setelah sukses akan muncul tampilan prompt seperti dibawah ini.
Proses Installasi WordPress pada Docker Container
Agar proses scale up menjadi lebih mudah, maka antara aplikasi dan database sebaiknya diletakan pada container sendiri-sendiri. Oleh karena itu kita akan menggunakan 2 container yaitu wordpress container dan mysql container. Untuk memudahkan proses pembuatan container, kita akan menggunakan docker image dari Docker Hub dan menggunakan docker-compose.
Langkah pertama, buat direktori untuk sebagai tempat kerja kita.
Langkah kedua, buat sebuah file YAML dengan nama docker-compose.yml, misalnya menggunakan editor nano.
Kemudian tambahkan definisi berikut ini pada file docker-compose.yml.
Setelah itu simpan perubahan dan keluar dari editor nanto dengan menekan secara berurutan kombinasi tombol CTRL+X, kemudian tombol Y dan yang terakhir tombol ENTER.
Pembahasan file docker-compose.yml:
- File tersebut menggunakan 2 buah container sebagai service yaitu wordpress dan mysql
- Service wordpress: menggunakan docker image wordpress versi terakhir (apabila didefinisikan secara jelas, otomatis menggunakan versi terakhir), public dapat mengakses pada port 80
- Service mysql: menggunakan docker image mysql versi 5.7
- Pastikan data pada nomor 1 dan nomor 2 pada gambar diatas (bagian environment dari kedua service) adalah sama, terutama pada bagian nama database, user dan password
- Isian environment database HOST pada service wordpress menggunakan nama service database yaitu mysql
- Bagian volumes dari setiap service berisi lokasi relatif path `./wordpress` untuk service wordpress dan `./db` untuk service mysql. Hal ini akan menghasilkan direktori baru pada tempat bekerja kita (IDCloudHost-wp) yang berisi file-file wordpress dan data-data yang terkait dengan wordpress ini. Dan file-file inilah yang nantinya bisa kita gunakan untuk proses migrasi ke server lain.
File yml bisa diunduh pada link docker-compose.yml
Langkah ketiga, jalankan container menggunakan docker composer.
Perintah diatas akan melakukan proses download docker image yang sudah difenisikan pada Langkah kedua sebelumnya apabila docker image tersebut belum ada di vps anda. Setelah semua image tersedia, proses berikutnya adalah menjalankan container sesuai yang sudah didefinisikan. Parameter -d pada perintah diatas, menunjukan container akan dijalankan di background. Tunggu proses ini selesai sampai muncul tanda bahwa container sudah siap seperti gambar di bawah.
Langkah keempat, konfigurasi dan menyelesaikan proses installasi wordpress
Karena port yang digunakan pada docker-compose.yml adalah 80, sehingga langkah berikutnya kita akses ip dari vps dengan port default (cukup menuliskan ip saja tanpa port). Apabila proses sebelumnya berjalan lancar dan berhasil maka akan muncul tampilan seperti berikut.
Selanjutnya, tekan tombol continue untuk melanjutkan proses konfigurasi dan menyelesaikan proses installasi wordpress. Pada tampilan berikutnya, silakan isikan Judul Website, username dan password serta alamat email anda kemudian tekan tombol Install WordPress.
Tunggu proses installasi wordpress sampai muncul tampilan seperti gambar di bawah ini.
Gambar tersebut menunjukan bahwa proses installasi wordpress telah selesai. Anda dapat masuk ke dashboard admin untuk melakukan konfigurasi berikutnya seperti menganti theme wordpress, menambahkan plugin atau langsung mulai menambahkan konten sesuai kebutuhan anda.
Selamat anda sudah mempunyai website wordpres yang diinstal pada docker tanpa ribet dan apabila suatu saat ingin migrasi server atau proses scale up juga dapat dilakukan dengan mudah dan cepat.