Docker
Pembuatan aplikasi untuk konsumsi publik tentunya memerlukan suatu “tempat” sebagai penampung (host). Jika kita lihat kembali ke masa lalu, implementasi hosting web services menggunakan suatu computer fisik yang dikenal sebagai server. Hal ini tentunya kurang efisien karena seharusnya aplikasi bersifat modular / dapat memilih requirements yang hanya dibutuhkan. Untuk server fisik, kita menggunakan semua requirements yang ada.
Seiring berjalannya waktu, cloud computing mulai dikenal oleh publik. Namun, cloud computing tradisional masih memiliki downside yaitu pemakaian sistem operasi (Microsoft, Linux, MacOs) yang berat (OS Image). Ukuran aplikasi kita bisa saja hanya sepersekian kali dari OS Image sehingga penggunaan OS Image tidak optimal.
Untuk itu, muncul solusi dari masalah ini dengan mengimplementasi konsep container. Sistem operasi tidak akan ter-host secara keseluruhan untuk setiap aplikasinya. Beberapa resources dapat dibagikan. Docker menggunakan konsep tersebut sehingga cukup diminati oleh publik.
Arsitektur Docker
Docker menggunakan arsitektur bertipe client-server. Secara umum, client melakukan “talk” ke daemon dan akan didistribusikan ke container. Komunikasi dilakukan dengan menggunakan REST API.
Terms
Docker Daemon
Fungsi utamanya adalah me-listen API requests dan mengatur beberapa objek docker seperti image, container dll.
Docker Client
Cara utama pengguna docker berinteraksi dengan docker. Komunikasi menggunakan command-command docker yang menggunakan docker API.
Docker Registries
Tempat penyimpanan docker images.
Docker Objects
Secara umum, ketika kita menggunakan docker, kita akan membuat dan menggunakan beberapa objek docker seperti images, containers, networks, volumes, dll.
- Images: template yang bersifat read-only untuk membuat container.
- Containers: sebuah instance of image yang dapat di-run.
Getting Started
Pada bagian ini saya akan mengintroduksikan beberapa docker commands yang umum digunakan
Instalasi
Pertama, downlaod Docker. Pastikan BIOS memiliki Virtualization Technologies, AMD-V, or KVM yang terpasang. Lalu, install extension pack pada Oracle VirtualBox. Setelah itu jalankan setup.
Penggunaan
Untuk membuat container, download “hello world” image dengan command berikut:
$ docker run hello world
Lalu, lakukan pengecekan docker images pada sistem dengan command:
$ docker images
Untuk melakukan pencarian image pada docker hub, jalankan:
$ docker search <image>
Beberapa Command Umum
- docker run: Menjalankan command pada container baru
- docker start: Memulai container yang dalam kondisi “stop”
- docker stop: Menghentikan container yang sedang berjalan
- docker build: build image dari Docker file
- docker pull: pull image atau repository dari registry
- docker push: push image atau repository ke registry
- docker export: meng-export filesystem milik container sebagai tar archive
- docker exec: Menjalankan command pada container run-time
- docker search: Mencari images pada docker hub
- docker attach: attach ke container yang sedang berjalan
- docker commit: Membuat image baru dari container changes.
Implementasi
Implementasi berada pada file gitlab-ci.yml kelompok kami
Kesimpulan
Docker baik digunakan untuk semua kalangan, baik itu perusahaan besar maupun tim kecil. Docker mengemas, mengirim dan menjalankan aplikasi sebagai container yang ringan, portable dan mandiri. Dengan sistem containerization bawaannya, docker menjadi tool yang bermutu dalam cloud computing.
Referensi
https://www.freecodecamp.org/news/7-cases-when-not-to-use-docker/