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.