Docker adalah salah satu platform yang dibangun berdasarkan teknologi container. Docker merupakan sebuah project open-source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan. Dengan sangat populernya docker, sebagian orang sering menganggap docker adalah sebutan lain untuk container.
Docker pertama kali dikembangkan oleh Solomon Hykes sebagai project internal di dotCloud bersama dengan beberapa koleganya seperti Andrea Luzzardi dan Francois-Xavier Bourlet. Perilisan platform ini secara open-source dilakukan pada mei 2013 silam. Docker terus berkembang hingga memiliki ribuan orang yang berkontribusi membuatnya menjadi lebih baik.
Perkembangan Docker
[ecko_alert color=”blue”]Pada DockerCon 2017 tahun lalu, CEO Docker, Ben Golub mengungkapkan bahwa Docker mengalami peningkatan penggunaan sejak tiga tahun terakhir. Sesuai dengan statistik pada diagram dapat dilihat bahwa sudah lebih dari 14 ribu host Docker, lebih dari 900 ribu aplikasi Docker, dan pertumbuhan pada twaran pekerjaan yang berhubungan dengan Docker tumbuh sebesar 77 ribu. Angka ini menunjukan bahwa semakin lama Docker sudah mulai menjadi primadona para developer untuk mengembangkan aplikasi miliknya.[/ecko_alert]
Siapa yang Menggunakan Docker?
Jadi siapa yang menggunakan Docker pada sistem mereka? Apakah startup? Perusahaan berkembang? Atau bahkan perusahaan besar?. Menurut data yang dikeluarkan oleh situs Datadog, ternyata ditemukan bahwa perpindahan sistem lama yang diganti ke Docker dimulai oleh perusahaan-perusahaan besar yang memiliki lebih dari 500 hosts.
Beberapa perusahaan lebih memilih menggunakan arsitektur dengan beban kerja yang ringan dan portabel. Docker dapat menjadi solusi dari kebutuhan itu. Selain itu mereka juga mencari arsitektur yang mudah untuk mendistribusikan aplikasi yang sedang dalam proses pengembangan pada segala lingkungan.
Fitur Docker
Berikut ini adalah fitur Docker yang bisa Anda gunakan sesuai dengan kebutuhan.
- Docker Engine, digunakan untuk membangun Docker images dan membuat kontainer Docker.
- Docker Hub, registry yang digunakan untuk berbagai macam Docker images
- Docker Compose, digunakan untuk mendefinisikan aplikasi menggunakan banyak kontainer Docker.
- Docker untuk Mac, memungkinkan menjalankan kontainer Docker pada Mac.
- Docker untuk Linux, memungkinkan menjalankan kontainer Docker pada Linux.
- Docker untuk Windows, memungkinkan menjalankan kontainer Docker pada Windows.
Kelebihan dan Kekurangan Docker sebagai Kontainer
Pengertian umum kontainer (container) merupakan alat untuk mempermudah mengemas dan mendistribusikan suatu hal dari satu tempat ke tempat lain.
Sedangkan kita berbicara mengenai teknologi informasi khususnya Linux, kontainer diartikan sebagai sistem yang dapat digunakan untuk memberikan sistem yang terisolasi (isolated environment) pada level OS yang dijalankan pada satu induk linux kernel.
Docker dengan kontainer miliknya memberikan solusi terhadap permasalahan fleksibilitas untuk menjalankan aplikasi pada lingkungan yang berbeda.
Biasanya jika ingin melakukan percobaan sebuah aplikasi membutuhkan lingkungan yang sama persis agar bisa berjalan dengan baik. Jadi jika menggunakan cara yang tidak terintegrasi tentunya akan membutuhkan waktu lama, karena harus melakukan beberapa konfigurasi sehingga server lokal dengan server live harus sama konfigurasinya.
Jadi dengan menggunakan Docker, pemindahan dari komputer lokal developer ke server live untuk menjalankan aplikasi tidak perlu banyak melakukan perubahan.
Ada pun keunggulan lain dari penggunaan Docker adalah sebagai berikut:
- Konfigurasi Sederhana
Kelebihan pertama Docker adalah konfigurasi yang diterapkan cukup sederhana dan bisa disesuaikan dengan kebutuhan aplikasi yang sedang dikembangkan. Hanya dengan beberapa baris kode, Docker sudah bisa membuat lingkungan (environment) sendiri yang berbeda dengan lingkungan server utama. Ini akan memisahkan kebutuhkan infrastruktur dari lingkungan aplikasi
- Platform Multi-Cloud
Tidak hanya berjalan pada satu platform cloud saja, Docker bisa dijalankan di berbagai platform cloud sehingga membuat Docker cukup fleksibel. Ini adalah kelebihan dan manfaat Docker yang bisa menjadi alasan utama developer menggunakan Docker.
Penyedia layanan cloud besar di dunia beberapa sudah mulai menyediakan dukungan Docker pada layanan mereka. Ini tentu saja menanggapi permintaan pasar yang sudah mulai melirik Docker untuk menjadi arsitektur utama dalam pengembangan sistem mereka.
Kontainer Docker yang bisa berjalan di berbagai layanan cloud memungkinkan sebuah aplikasi bisa di porting antar lingkungan dengan mudah. Sama seperti virtual machine dengan file vdi yang dijalankannya. Hanya saja Docker lebih ringan dan tidak terlalu menggunakan banyak alokasi memori untuk menjalankannya..
- Standarisasi Lingkungan & Kontrol Versi
Saat melakukan upgrade komponen biasanya seluruh lingkungan akan dipecah. Jika terjadi masalah pada proses tersebut, Docker mempunysi fitur agr bisa langsung melakukan roolback ke versi sebelumnya melalui image Docker. Contoh penggunaan Docker ini bekerja lebih cepat dibandingkan dengan Virtual Machine.
Hal ini dikarenakan Docker melakukan standarisasi lingkungan dengan memastikan konsistensi di beberapa proses pengembangan dan pembaruan versi.
- Dapat Melakukan Pengujian dan Distribusi Aplikasi Secara Terus Menerus
Fleksibilitas berjalan pada segala macam sistem operasi membuat aplikasi yang menggunakan Docker dapat dilakukan pengujian dengan mudah dilakukan. Tanpa memempersiapkan konfigurasi yang terkadang membutuhkan waktu yang sangat lama. Dengan begitu, segala proses pengujian kemudian perbaikan dapat dilakukan dengan cepat.
- Isolasi
Sumber daya pada setiap aplikasi dipastikan terisolasi secara terpisah oleh Docker. Jadi user dapat menyesuaikan kebutuhan pada setiap aplikasi tanpa harus mempengaruhi konfigurasi pada aplikasi yang lain.
Sebagai contoh dua aplikasi A dan B membutuhkan webserver versi pertama. Setelah proses update ternyata aplikasi A hanya bisa berjalan menggunakan versi webserver kedua sehingga harus dilakukan perubahan pada webserver. Padahal pada aplikasi B membutuhkan webserver versi pertama.
Tentu saja ini akan menimbulkan masalah di salah satu aplikasi yang berjalan pada server yang sama.
- Keamanan
Docker memastikan aplikasi yang berjalan tidak bisa mempengaruhi kontainer atau bahkan memberikan kontrol penuh atas manajemen dan arus lalu lintas. Pengamanan lain yang dilakukan Docker adalah dengan mengatur OS host mount point dengan read-only jadi tidak bisa merubah apapun konfigurasi disana kecuali yang mempunyai akses penuh.
INSTALASI DOCKER
- Ubuntu
Untuk memulai proses instalasi pada artikel Docker tutorial ini kami akan menggunakan sistem operasi Ubuntu. Secara gartis besar tahapannya hampir sama dengan sistem operasi lain.
Langkah 1 – Syarat utama untuk bisa melakukan instalasi Docker adalah sistem operasi harus menggunakan kernel minimal versi 3,8 atau setelahnya.
[ecko_alert color=”red”]Catatan! Minimal kernel agar bisa melakukan proses instalasi Docker adalah versi 3,8[/ecko_alert]
Proses pengecekan bisa dilakukan dengan perintah uname.
[ecko_alert color=”gray”]uname -a[/ecko_alert]
Hasil dari perintah tersebut bisa dilihat bahwa sistem operasi menggunakan versi kernel diatas 3,8, jadi kita bisa melanjutkan ke proses selanjutnya.
Langkah 2 – Update sistem operasi merupakan hal wajib yang harus dilakukan pada sistem operasi ubuntu sebelum melakukan instalasi sebuah paket.
[ecko_alert color=”gray”] sudo apt update [/ecko_alert]
Langkah 3 – Langkah selanjutnya adalah melakukan instalasi beberapa sertifkat yang diperlukan agar Docker bisa berjalan.
[ecko_alert color=”gray”] sudo apt-get install apt-transport-https ca-certificates [/ecko_alert]
Langkah 4 – Langkah selanjutnya adalah dengan menambahkan GPG key untuk memastikan bahwa data terenkripsi ketika proses pengunduhan paket yang diperlukan Docker.
Langkah 5 – Tambahkan repository sesuai dengan versi yang sesuai dengan sistem operasi yang dipakai. Kami menggunakan Ubuntu 16.04 jadi kamu menggunakan repository Xenial.
# Xenial 16.04 (LTS) – https://apt.dockerproject.org/repo ubuntu-xenial main
[ecko_alert color=”gray”] sudo echo “deb https://apt.dockerproject.org/repo ubuntu-xenia main” [/ecko_alert]
Kemudian jalankan perintah
[ecko_alert color=”gray”] sudo tee /etc/apt/sources.list.d/docker.list [/ecko_alert]
Langkah 6 – Kemudian eksekusi perintah sudo apt update untuk memperbarui paket pada sistem Ubuntu.
Langkah 7 – Untuk memastikan jika package manager sudah mengarah pada repository yang tepat, gunakan perintah apt-cache command.
[ecko_alert color=”gray”] sudo apt-cache policy docker-engine [/ecko_alert]
Langkah 8 – Versi terbaru Docker memerlukan beberapa paket yang harus di instal pada beberapa sistem operasi. Gunakan perintah berikut utuk menambahkan paket tersebut.
[ecko_alert color=”gray”] sudo apt-get install linux-image-extra-$(uname -r)
linux-image-extra-virtual [/ecko_alert]
Langkah 9 – Langkah yang paling penting adalah melakukan instalasi Docker.
[ecko_alert color=”gray”] sudo apt-get install –y docker-engine [/ecko_alert]
Langkah 10 – Periksa versi Docker yang sudah terinstal dengan menggunakan perintah sudo docker version
dan sudo docker info
untuk melihat informasi secara detail Docker yang sudah terinstal.
- Windows
Jika Anda menggunakan sistem operasi Windows, berikut beberapa langkah yang bisa Anda ikuti untuk melakukan instalasi Docker.
Langkah 1 – Unduh file instalasi Docker melalui halaman download Docker, ukurannya cukup besar sehingga disarankan menggunakan koneksi internet yang cukup 😀
[ecko_alert color=”red”]Catatan! Jika Anda menggunakan versi Windows yang lama disarankan untuk menggunakan versi Docker Toolbox melalui halaman download Docker Toolbox [/ecko_alert]
Langkah 2 – Instal Docker menggunakan executable file yang sudah diunduh.
Langkah 3 – Setelah selesai proses instalasi, untuk menjalankan Docker Anda perlu melakukan restart pada perangkat. Jadi restart perangkat agar Docker user dapat berjalan.
Teknologi kontainer pada Linux sangat mempermudah proses pengembangan aplikasi dalam hal deployment dan maintenance. Selain mempunyai layanan kontainer berbasis aplikasi, Docker juga memiliki beberapa keunggulan lain, seperti adanya registry yang bisa digunakan untuk menyimpan images Docker di cloud.
Jika Anda menggunakan Linux maka harus menggunakan versi kernel yang terbaru. Dikarenakan Docker tidak bisa berjalan di kernel lama. Minimal kernel agar bisa melakukan proses instalasi Docker adalah versi 3,8.