Halo, Kawan Belajar!
Dalam era cloud computing dan DevOps, efisiensi dalam pengembangan serta deployment aplikasi menjadi prioritas. Docker hadir dengan konsep containerization yang membuat aplikasi lebih ringan, portabel, dan konsisten di berbagai lingkungan.
Salah satu komponen inti dalam Docker adalah Docker Container. Pada artikel kali ini kita akan mengupas tuntas apa itu Docker Container, cara kerjanya, dan bagaimana cara mengoperasikannya dalam workflow pengembangan modern.
Simak artikelnya sampai tuntas ya, Kawan Belajar!
Apa Itu Docker Container?
Secara umum, container adalah unit standar perangkat lunak yang membungkus aplikasi beserta semua dependensinya (kode, library, konfigurasi, hingga runtime). Tujuannya agar aplikasi bisa berjalan cepat, ringan, dan konsisten di berbagai lingkungan, baik itu laptop developer, server, maupun cloud.
Dalam konteks Docker: Docker Container adalah instance berjalan dari sebuah Docker Image. Container ini sudah berisi semua komponen aplikasi (library, konfigurasi, runtime), dan berjalan secara terisolasi dari sistem utama.
Dengan adanya Docker Container, aplikasi dapat dijalankan di berbagai platform tanpa perlu khawatir perbedaan sistem operasi atau konfigurasi, karena semuanya sudah dikemas rapi di dalamnya.
Hubungan Docker Image dan Container:
- Docker Image → paket “cetakan” berisi kode, runtime, sistem library, tools, dan konfigurasi yang dibutuhkan.
- Docker Container → instance yang berjalan dari image tersebut. Saat image dijalankan di Docker Engine, ia berubah menjadi container yang aktif.
Catatan:
Jika kamu ingin memahami lebih lanjut tentang Docker Image, silakan baca artikelnya di sini:
👉 Memahami Docker Image: Pengertian dan Cara MenggunakannyaKalau ingin tahu lebih dalam tentang konsep virtualisasi container, termasuk pengertian, arsitektur, dan penggunaannya, bisa kunjungi artikel berikut:
👉 Mengenal Virtualisasi Container: Pengertian, Arsitektur, dan Penggunaannya
Prinsip Penting Docker Container
Isolated
Setiap container berjalan dalam ruang terisolasi (namespace) sehingga tidak saling mengganggu satu sama lain.Portable
Container dapat dijalankan di berbagai platform, baik di laptop developer, server staging, hingga production di cloud.Ephemeral
Container bersifat sementara, dapat dihentikan atau dihapus kapan saja. Data permanen biasanya dikelola melalui volume.Lightweight
Container berbagi kernel dengan host OS, sehingga jauh lebih ringan dibanding virtual machine.
Kegunaan Docker Container
- Pengembangan Aplikasi: Developer dapat memastikan aplikasi berjalan konsisten di semua environment.
- Microservices: Memecah aplikasi menjadi service kecil yang berjalan di container berbeda.
- CI/CD Pipeline: Mempercepat build, testing, hingga deployment.
- Testing: Menjalankan berbagai environment aplikasi secara cepat.
Bagaimana Cara Menggunakan Docker Container?
Penggunaan Docker Container melibatkan langkah berikut:
- Menarik (pull) image dari Docker Hub atau registry lain.
- Menjalankan (run) container berdasarkan image.
- Mengelola container dengan perintah Docker.
- Menghapus container jika sudah tidak diperlukan.
Perbedaan Docker Image dan Docker Container
| Fitur | Docker Image | Docker Container |
|---|---|---|
| Definisi | Blueprint atau template yang berisi instruksi untuk membuat container. | Instance yang berjalan dari Docker Image. |
| Analogi | Seperti resep masakan. | Seperti masakan yang sudah jadi. |
| Sifat | Immutable (tidak dapat diubah setelah dibuat). | Mutable (dapat diubah selama runtime). |
| Pembuatan | Dibuat menggunakan Dockerfile atau docker commit. |
Dibuat dengan menjalankan Docker Image menggunakan perintah docker run. |
| Penyimpanan | Disimpan di Docker Registry (misalnya Docker Hub). | Tidak dapat dibagikan secara langsung. |
| Modifikasi | Diperlukan perubahan pada Dockerfile untuk mengubah image. | Dapat dimodifikasi langsung selama runtime. |
| Contoh | ubuntu:latest → image berisi sistem operasi Ubuntu. |
Container yang menjalankan aplikasi web berbasis image ubuntu:latest. |
Perintah Dasar Docker Container
Setelah memahami apa itu Docker Container, langkah berikutnya adalah mempelajari perintah-perintah dasar yang sering digunakan dalam pengelolaannya. Dengan perintah ini, kamu bisa membuat, menjalankan, menghentikan, hingga menghapus container sesuai kebutuhan.
Bagian ini sangat penting, terutama bagi pemula, agar terbiasa berinteraksi dengan Docker melalui terminal.
a. Persyaratan Awal
Sebelum menjalankan perintah dasar Docker Container, pastikan hal berikut sudah terpenuhi:
- Docker sudah terinstal dan berjalan di sistem kamu.
Catatan:
Jika kamu belum menginstal Docker, silakan baca panduan berikut:
👉 Cara Melakukan Instalasi Docker pada Sistem Operasi LinuxJika kamu membutuhkan VPS yang handal untuk mencoba maupun menjalankan Docker di lingkungan cloud, CloudKilat menyediakan layanan Kilat VM 2.0, baca fitur dan keunggulannya disini:
👉 Mengenal Fitur dan Keunggulan Layanan Kilat VM 2.0
- Memiliki hak akses pengguna (biasanya root atau user yang tergabung dalam grup docker).
b. Rangkuman Versi Aplikasi yang Digunakan
Dalam panduan ini, berikut detail versi dari sistem operasi dan aplikasi yang digunakan:
- Sistem Operasi: Ubuntu 24.04 LTS
- Docker Engine: 28.4.0
c. Macam-Macam Perintah Dasar Docker Container
Jika persyaratan di atas sudah terpenuhi, berikut beberapa perintah dasar Docker Container yang bisa kamu pelajari:
- Membuat dan Menjalankan Container
docker run -d --name <nama_container> <nama_image>:<tag>
Contoh Penggunaan:
Penjelasan:
Perintah pada gambar diatas akan membuat dan menjalankan container baru dengan nama web-nginx menggunakan image nginx:latest. Opsi -d artinya container berjalan di background (detached mode).
- Menampilkan Daftar Container
docker ps
Contoh Penggunaan:
Penjelasan:
Perintah docker ps hanya menampilkan container aktif.
Gunakan docker ps -a untuk melihat semua container, termasuk yang sudah berhenti.
- Menghentikan Container
docker stop <id_container/nama_container>
Contoh Penggunaan:
Penjelasan:
Menghentikan container web-nginx yang sedang berjalan.
- Menyalakan Container yang Sudah Ada
docker start <id_container/nama_container>
Contoh Penggunaan:
Penjelasan:
Menyalakan kembali container web-nginx yang sebelumnya dihentikan.
- Melihat Log Container
docker logs <id_container/nama_container>
Contoh Penggunaan:
Penjelasan:
Menampilkan output log dari aplikasi yang berjalan di dalam container. Log ini penting untuk:
- Debugging → membantu menemukan error pada aplikasi.
- Monitoring → memastikan aplikasi berjalan dengan benar.
- Audit → melihat histori aktivitas container.
Jika ingin melihat log secara real-time (seperti tail -f), gunakan opsi -f
- Masuk ke dalam Container (Interactive Mode)
docker exec -it <id_container/nama_container> /bin/bash
Contoh Penggunaan:
Penjelasan:
Perintah docker exec digunakan untuk menjalankan perintah tambahan di dalam container yang sudah aktif.
Opsi penting yang biasa digunakan:
- -i (interactive) → menjaga input tetap terbuka sehingga kamu bisa berinteraksi dengan container.
- -t (tty) → menyediakan terminal virtual agar perintah bisa dijalankan dengan nyaman.
Kombinasi -it biasanya dipakai untuk masuk ke dalam shell container.
Contoh lainnya:
Masuk ke container dengan shell sh (jika bash tidak tersedia):
docker exec -it <id_container/nama_container> shMenjalankan perintah sederhana di dalam container tanpa masuk shell, misalnya tes koneksi HTTP ke service yang jalan di container:
docker exec -it web-nginx curl http://localhost
- Melihat Detail Informasi Container
docker inspect <id_container/nama_container>
Contoh Penggunaan:
Penjelasan:
Menampilkan informasi detail tentang container seperti konfigurasi, network, volume, dan environment variable.
- Menghapus Container
docker rm <id_container/nama_container>
Contoh Penggunaan:
Penjelasan:
Perintah ini menghapus container yang sudah dihentikan. Jika container masih berjalan, harus dihentikan dulu sebelum dihapus.
- Menghapus Semua Container yang Berhenti
docker container prune
Contoh Penggunaan:
Penjelasan:
Perintah docker container prune digunakan untuk menghapus semua container yang sudah berhenti sekaligus, sehingga kamu tidak perlu menghapusnya satu per satu dengan docker rm.
👉 Beberapa hal yang perlu diperhatikan:
- Hanya container dengan status Exited/Stopped yang akan dihapus.
- Container yang masih berjalan tidak akan terpengaruh.
- Biasanya perintah ini digunakan untuk membersihkan resource agar sistem tidak penuh oleh container-container lama yang sudah tidak dipakai.
- Setelah konfirmasi ([y/N]), Docker akan menampilkan daftar ID container yang dihapus serta ruang disk yang berhasil dibebaskan.
- Data yang ada di container akan hilang setelah dihapus. Jika ingin menjaga data, pastikan sudah menggunakan volume atau bind mount untuk penyimpanan persisten.
Catatan:
- Silakan sesuaikan id_container dan nama_container dengan container yang ada di sistem kamu.
- Jika menggunakan image berbeda (misalnya PostgreSQL, Redis, atau MariaDB), parameter tambahan mungkin diperlukan.
Penutup
Docker Container adalah salah satu komponen paling penting dalam ekosistem Docker. Dengan memahami konsep, fungsi, serta perintah dasarnya, kamu bisa lebih mudah mengelola aplikasi secara konsisten di berbagai lingkungan, mulai dari laptop developer, server staging, hingga production di cloud.
Bagi pemula, kuasai dulu perintah dasar seperti run, ps, stop, start, hingga logs. Setelah terbiasa, kamu bisa mulai menjelajahi fitur lebih lanjut seperti networking, volume, dan integrasi dengan Docker Compose untuk mengelola banyak container sekaligus.
Dengan memanfaatkan Docker Container secara optimal, proses pengembangan, testing, hingga deployment aplikasi akan menjadi lebih cepat, efisien, dan minim masalah kompatibilitas.
Semoga panduan ini membantu kamu lebih paham tentang Docker Container. Selamat mencoba dan bereksperimen, Kawan Belajar! 🚀