Docker

Habel Tobing
3 min readMay 3, 2021
sumber: https://emka.web.id/

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

sumber: https://docs.docker.com/get-started/overview/#:~:text=Docker%20is%20an%20open%20platform,ways%20you%20manage%20your%20applications.

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://docs.docker.com/get-started/overview/#:~:text=Docker%20is%20an%20open%20platform,ways%20you%20manage%20your%20applications.

https://www.freecodecamp.org/news/7-cases-when-not-to-use-docker/

--

--

Habel Tobing

Currently studying Computer Science at Universitas Indonesia