Webdev, Devops, Tutorial

Belajar Docker Bagian 5

Eko Susilo Harjo September 28, 2024

Docker Containers adalah inti dari Docker yang memungkinkan kita menjalankan aplikasi secara terisolasi. Dalam artikel ini, kita akan membahas bagaimana cara mengelola container, termasuk menjalankan, menghentikan, memantau resource usage, serta mengatur jaringan dan volume untuk menyimpan data.

Menjalankan, Menghentikan, dan Menghapus Containers

Manajemen dasar container melibatkan tiga aktivitas utama: menjalankan, menghentikan, dan menghapus container.

1. Menjalankan Container

Untuk menjalankan container, perintah yang sering digunakan adalah docker run. Anda dapat menjalankan container dari image yang sudah ada seperti dari Docker Hub, atau dari image yang sudah Anda buat.

Contoh menjalankan container dari image nginx:

docker run -d -p 8080:80 nginx

Penjelasan:

  • -d untuk menjalankan container dalam mode detached (background).
  • -p 8080:80 untuk memetakan port 8080 di host ke port 80 di container.

Setelah menjalankan perintah di atas, Anda bisa mengakses aplikasi nginx di browser dengan mengunjungi http://localhost:8080.

2. Menghentikan Container

Untuk menghentikan container yang sedang berjalan, Anda bisa menggunakan perintah docker stop diikuti dengan container ID atau nama container.

Contoh:

docker stop <container_id>

Perintah ini akan menghentikan container yang sedang berjalan. Anda dapat menemukan container ID menggunakan perintah docker ps untuk melihat daftar container yang sedang aktif.

3. Menghapus Container

Setelah container berhenti, Anda mungkin ingin menghapusnya untuk membersihkan resource. Gunakan perintah docker rm untuk menghapus container.

Contoh:

docker rm <container_id>

Jika Anda ingin menghentikan dan langsung menghapus container yang sedang berjalan, Anda bisa menggunakan perintah berikut:

docker rm -f <container_id>

Perintah -f (force) akan menghentikan dan menghapus container secara bersamaan.

Memantau Resource Usage pada Containers

Setiap container yang berjalan akan menggunakan CPU, memori, dan jaringan. Docker menyediakan beberapa tools untuk memantau penggunaan resource ini.

Menggunakan docker stats

Perintah docker stats menampilkan penggunaan CPU, memori, dan jaringan secara real-time untuk setiap container yang sedang berjalan.

Contoh:

docker stats

Outputnya akan menampilkan metrik seperti berikut:

CONTAINER ID    NAME           CPU %   MEM USAGE / LIMIT   NET I/O         BLOCK I/O
c6f7d3f5eb1e nginx_server 2.30% 25.6MiB / 2GiB 123kB / 456kB 4.5MB / 0B

Dengan ini, Anda bisa memantau apakah container menggunakan resource yang terlalu banyak dan apakah ada bottleneck yang perlu diperbaiki.

Membatasi Resource untuk Container

Jika Anda ingin membatasi penggunaan resource oleh container, Anda bisa melakukannya dengan menambahkan beberapa flag saat menjalankan container.

Contoh membatasi CPU dan memori:

docker run -d --name nginx_server --cpus="1.5" --memory="512m" nginx

Ini berarti container akan dibatasi hingga penggunaan maksimal 1,5 core CPU dan 512MB RAM.

Docker Networking: Jaringan Antar Container

Docker memiliki mekanisme networking bawaan yang memungkinkan container berkomunikasi satu sama lain atau dengan dunia luar. Ada beberapa jenis jaringan yang bisa digunakan, tetapi yang paling umum adalah bridge dan host.

Menggunakan Jaringan Bridge

Jaringan bridge adalah jaringan default yang digunakan Docker jika Anda tidak menentukan jenis jaringan saat menjalankan container. Ini memungkinkan container di host yang sama untuk berkomunikasi melalui IP pribadi.

Contoh menjalankan container dalam jaringan bridge:

docker run -d --name webapp --network bridge nginx

Untuk memeriksa jaringan yang digunakan container, Anda bisa menggunakan:

docker inspect <container_id>

Menghubungkan Container di Jaringan yang Sama

Jika Anda ingin beberapa container dapat saling terhubung, pastikan mereka berada di jaringan yang sama. Anda bisa membuat jaringan kustom menggunakan perintah docker network create.

Contoh membuat jaringan kustom dan menambahkan container ke jaringan tersebut:

docker network create my_network
docker run -d --name db_container --network my_network mysql
docker run -d --name app_container --network my_network nginx

Container db_container dan app_container sekarang bisa saling berkomunikasi karena berada di jaringan yang sama.

Docker Volumes: Menyimpan Data pada Containers

Container pada dasarnya bersifat sementara. Jika container dihentikan atau dihapus, semua data yang tersimpan di dalamnya akan hilang. Docker volumes adalah cara untuk menyimpan data secara persisten sehingga tetap ada meskipun container dihapus atau dihentikan.

Membuat Volume

Docker volume dapat dibuat menggunakan perintah docker volume create.

Contoh:

docker volume create my_volume

Anda bisa melihat daftar volume yang ada dengan perintah:

docker volume ls

Menggunakan Volume di Container

Untuk menggunakan volume yang telah Anda buat, Anda bisa memasukkannya saat menjalankan container dengan flag -v.

Contoh menjalankan container dengan volume:

docker run -d -v my_volume:/data nginx

Pada contoh di atas, direktori /data di dalam container akan dihubungkan ke volume my_volume di host. Semua file yang disimpan di dalam /data akan tetap ada meskipun container dihentikan atau dihapus.

Bind Mounts

Selain volume, Docker juga mendukung bind mounts, yang memungkinkan Anda menghubungkan direktori di host langsung ke container.

Contoh:

docker run -d -v /path/to/host/directory:/data nginx

Ini akan membuat direktori /data di container terhubung langsung ke /path/to/host/directory di host, sehingga Anda bisa langsung mengakses file di container dari host.

Kesimpulan

Mengelola Docker Containers tidak hanya tentang menjalankan dan menghentikan container. Dengan memahami cara memantau resource, mengatur jaringan antar container, dan menggunakan volume untuk penyimpanan data yang persisten, Anda bisa memanfaatkan Docker dengan lebih efisien.

Pentingnya jaringan dan volume dalam pengelolaan container memastikan bahwa aplikasi Anda tetap berjalan dengan baik dan data tetap aman, meskipun container bersifat sementara. Semakin baik Anda memahami fitur-fitur ini, semakin mudah Anda bisa mengelola dan mengoptimalkan aplikasi dalam lingkungan containerized.


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Pengenalan Go 1.25 baru saja rilis dan bawa banyak peningkatan yang bikin hidup developer lebih gampang. Di artikel ini, kita bakal bahas tiga fitur paling menonjol: DWARF v5 untuk debugging yang lebih ringan, go doc -http yang menyiapkan server dokumentasi lokal dalam hitungan detik, serta interface XOF untuk hash yang output‑nya bisa diperpanjang. Semua dijelaskan dengan […]

News

Change Data Capture (CDC)

Eko Susilo Harjo

28 August 2025

Di era digital, sistem ERP (Enterprise Resource Planning) menjadi tulang punggung perusahaan. Semua proses – mulai dari keuangan, HR, inventori, hingga produksi – bertumpu pada data yang terus berubah setiap detik.Tantangannya: bagaimana cara menampilkan data yang selalu up-to-date tanpa membebani server? Jawabannya ada pada teknologi Change Data Capture (CDC). Apa itu CDC? Change Data Capture […]

Pengantar MLOps (Machine Learning Operations) adalah gabungan praktik DevOps yang diterapkan pada seluruh siklus hidup model AI. Dengan MLOps, tim dapat memindahkan model dari notebook eksperimen ke produksi secara reliable, terukur, dan otomatis. Artikel ini bakal ngasih blueprint praktis untuk developer, data scientist, dan platform engineer yang mau membangun sistem ML produksi. Siklus Hidup MLOps […]

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading