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.

  Cara Optimasi GPT-3 OpenAI untuk Konten Berkualitas GPT-3 OpenAI sudah menjadi senjata andalan creator konten modern. Namun, tanpa optimasi yang tepat, hasilnya bisa jauh dari harapan. Artikel ini menuntunmu mengekstrak potensi penuh GPT-3 agar setiap prompt menghasilkan konten berkualitas tinggi. Apa itu GPT-3 dan Kenapa Perlu Dioptimasi?GPT-3 adalah model bahasa canggih buatan OpenAI yang […]

Model Context Protocol (MCP) kini menjadi standar baru dalam mengintegrasikan Large Language Models (LLM) ke dalam aplikasi. Tutorial ini menjelaskan langkah-langkah implementasi MCP dalam pengembangan aplikasi modern agar Anda bisa mulai menggunakan protokol ini hari ini. Apa Itu MCP dan Manfaatnya MCP adalah protokol terbuka yang memungkinkan aplikasi berkomunikasi dengan LLM menggunakan format JSON-RPC 2.0. […]

Dalam era digital dan kerja hybrid, AI personal assistant bukan lagi sekadar tren, melainkan alat strategis untuk otomatisasi tugas, penghematan waktu, dan fokus pada pekerjaan bernilai tinggi. Artikel ini membahas lebih dari sekadar memilih asisten AI: kita akan bedah strategi nyata, tools yang bisa Anda pakai, serta bagaimana AI bisa diintegrasikan ke sistem kerja Anda […]

Discover more from teknologi now

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

Continue reading