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.

Polars adalah pustaka open-source untuk pemrosesan data yang ditulis dalam bahasa Rust, yang terkenal dengan efisiensi dan kecepatan. Polars dirancang untuk menangani analisis data secara paralel, memanfaatkan arsitektur modern komputer yang memiliki banyak inti CPU.

“Pelajari konsep Docker persistence dan teknik seperti Docker volumes, bind mounts, dan tmpfs untuk memastikan data tetap aman dan persisten dalam container. Dapatkan panduan lengkap di sini!”

AI dalam dunia fintech telah berkembang pesat, bukan sekadar teknologi baru yang tiba-tiba muncul. Teknologi ini telah lama digunakan untuk membantu pengambilan keputusan keuangan dan mendeteksi penipuan. Kini, AI dan subdomainnya, yaitu Machine Learning (ML), memberikan nilai tambah signifikan dalam berbagai aspek industri fintech. Apa saja manfaat utama teknologi ini bagi sektor keuangan dan perbankan? […]

Discover more from teknologi now

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

Continue reading