Docker adalah sebuah software framework untuk membangun, menjalankan, dan mengelola container di server dan cloud. Istilah "docker" dapat merujuk ke alat (perintah dan daemon) atau ke format file Dockerfile.
Dulu ketika Anda ingin menjalankan aplikasi web, Anda harus membeli server, menginstal Linux, menyiapkan LAMP stack, dan mulai menjalankan aplikasi tersebut. Jika aplikasi Anda menjadi populer, Anda perlu mempraktikkan penyeimbangan beban yang baik dengan menyiapkan server kedua untuk memastikan aplikasi tersebut tidak mogok karena terlalu banyak trafik.
Baca Juga: Apa Itu Black-box Testing?
Namun, zaman telah berubah, dan alih-alih berfokus pada server tunggal, internet dibangun di atas susunan server yang saling bergantung dan berlebihan dalam sistem yang biasa disebut "cloud". Berkat inovasi seperti Linux Kernel namespace dan cgroup, konsep server dapat dihilangkan dari batasan hardware dan pada dasarnya menjadi bagian dari software itu sendiri. Server berbasis server ini disebut sebagai container dan merupakan campuran hibrida dari OS Linux yang mereka jalankan ditambah dengan hyper-localized runtime environment atau isi dari container.
Teknologi container dapat dibagi tiga kategori yang berbeda, yaitu:
- Builder: alat atau serangkaian alat yang digunakan untuk membangun sebuah wadah, seperti distrobuilder untuk LXC, atau Dockerfile untuk Docker;
- Engine: aplikasi yang digunakan untuk menjalankan container. Untuk Docker, ini mengacu pada docker command dan docker daemon. Untuk yang lain, ini dapat merujuk ke daemon container dan perintah yang relevan (seperti podman);
- Orchestration: teknologi yang digunakan untuk mengelola banyak container, termasuk Kubernetes dan OKD.
Container sering mengirimkan aplikasi dan konfigurasi, yang berarti sysadmin tidak perlu menghabiskan banyak waktu untuk menjalankan aplikasi dalam container dibandingkan dengan saat aplikasi diinstal dari sumber konvensional. Dockerhub dan Quay.io adalah repositori yang menawarkan gambar untuk digunakan oleh mesin container.
Namun, daya tarik terbesar dari container adalah kemampuannya untuk "mati" dengan anggun dan muncul kembali saat load balancing menuntutnya. Walau "kematian" container disebabkan oleh kerusakan atau karena tidak lagi diperlukan karena trafik server yang rendah, container dirancang untuk muncul dan menghilang kembali dengan mulus. Karena container dimaksudkan untuk sementara dan untuk menelurkan instance baru sesering yang diperlukan, pemantauan dan pengelolaannya diharapkan tidak dilakukan oleh manusia secara real time, tetapi secara otomatis.
Mengenal Komponen pada Docker
Docker menjadi populer berkat para software developer karena mereka menemukan cara baru untuk mengemas alat yang diperlukan untuk membangun dan meluncurkan container dengan cara yang lebih ramping dan mudah disederhanakan daripada cara lain yang mungkin dilakukan sebelumnya. Docker terdiri dari Dockerfile, container image, Docker run utility, Docker Hub, Docker Engine, Docker Compose, dan Docker Desktop.
- Dockerfile. Setiap Docker container dimulai dengan Dockerfile. File teks ini menyediakan serangkaian instruksi untuk membangun Docker image, termasuk sistem operasi, bahasa, environment variable, lokasi file, port jaringan, dan komponen lain yang perlu dijalankan;
- Docker image. Mirip dengan snapshot di dunia VM, Docker image adalah file portabel, read-only, yang dapat dieksekusi dan berisi instruksi untuk membuat container dan spesifikasi komponen software yang akan dijalankan oleh container beserta cara menjalankannya;
- Docker run utility. Docker run utility adalah perintah untuk meluncurkan container. Setiap container adalah instance dari sebuah image, dan beberapa instance dari image yang sama dapat dijalankan secara bersamaan;
- Docker Hub. Docker Hub adalah repositori tempat gambar container dapat disimpan, dibagikan, dan dikelola. Anggap saja ini sebagai GitHub versi Docker sendiri, tetapi khusus untuk container;
- Docker Engine. Docker Engine adalah inti dari Docker. Ini adalah teknologi client-server yang membuat dan menjalankan container. Docker Engine menyertakan proses daemon yang disebut dockerd untuk mengelola container, API yang memungkinkan program berkomunikasi dengan Docker daemon, dan command line interface;
- Docker Compose. Docker Compose adalah command line tool yang menggunakan file YAML untuk mendefinisikan dan menjalankan aplikasi Docker multi-container. Ini memungkinkan Anda untuk membuat, memulai, menghentikan, dan membangun kembali semua layanan dari konfigurasi Anda serta melihat status dan keluaran log dari semua layanan yang berjalan;
- Docker Desktop. Semua bagian komponen ini dibungkus dalam aplikasi Desktop Docker. Alat ini menyediakan cara yang mudah digunakan untuk membangun dan berbagi aplikasi atau layanan mikro dalam container.
Mau Berita Terbaru Lainnya dari Warta Ekonomi? Yuk Follow Kami di Google News dengan Klik Simbol Bintang.
Penulis: Patrick Trusto Jati Wibowo
Editor: Puri Mei Setyaningrum
Tag Terkait: