Ingin tahu apa yang dilakukan aplikasi Docker di balik layar? Mari pelajari lebih lanjut tentang jendela tersembunyi yang dikenal sebagai log, yaitu catatan di dalam container Anda yang merekam setiap aktivitas yang terjadi. Log sangat berguna untuk memecahkan masalah. Namun sebelum kita mulai, mari kita lihat sekilas apa itu Docker dan Docker Compose.
Docker memungkinkan Anda mengemas aplikasi ke dalam container kecil dan menjalankannya di hampir semua sistem operasi tanpa perlu menginstal dependensi tambahan. Bayangkan seperti memasukkan aplikasi ke dalam kotak bernama Container, yang berjalan dengan cara yang sama di mana saja. Memahami konsep container adalah prasyarat penting sebelum mempelajari Docker Compose. Karena itu, saya sarankan Anda membaca artikel blog kami tentang manfaat containerisasi.
Docker Compose hadir bersama Docker dan mempermudah pengembangan beberapa aplikasi berbasis container dengan menghubungkan service, jaringan, dan penyimpanan mereka. Log container Docker dan logging Docker Compose membantu developer melihat apa yang dilakukan setiap container.
Ingin tahu lebih banyak tentang Docker Compose Logs? Anda berada di tempat yang tepat. Blog ini akan menjelaskan dasar-dasar log Docker Compose sekaligus membahas detail yang lebih lanjut. Pelajari cara memanfaatkan Docker Compose secara maksimal untuk proyek Anda.
Pentingnya Log Docker Compose
Bayangkan seorang developer meluncurkan aplikasi dengan Docker tetapi melewatkan konfigurasi log Docker. Awalnya semua terlihat baik-baik saja. Namun tak lama kemudian, pengguna menemukan error dan aplikasi mulai melambat. Tanpa log Docker, developer tidak bisa melihat apa yang salah di dalam container Docker. Log Docker Compose ibarat catatan rinci dari container-container tersebut. Mereka merekam setiap detail yang terjadi, yang sangat penting untuk menemukan dan memperbaiki masalah di kemudian hari.
Sebagai Developer atau System Admin, Anda perlu memahami apa yang terjadi di dalam dan antar aplikasi multi-chain. Di sinilah log Docker Compose berperan sebagai alat yang sangat berguna. Lalu, mengapa log ini begitu penting?
-
Pemecahan Masalah dan Debugging
Periksa docker logs ketika aplikasi tidak berjalan dengan benar atau mengalami error. Log Docker adalah sumber pertama yang bisa Anda lihat untuk menelusuri masalah. Dengan memeriksa docker logs, developer dapat mengidentifikasi akar penyebab masalah, baik itu bug dalam kode, kesalahan konfigurasi, maupun masalah resource.
-
Memantau Kesehatan Aplikasi
Memantau log aplikasi secara rutin membantu memahami kondisi keseluruhan service. Log dapat menampilkan tanda-tanda peringatan dini, seperti error yang berulang dan respons yang lambat. Mendeteksi pola-pola ini lebih awal dapat mencegah masalah yang lebih besar di masa mendatang.
-
Audit dan Kepatuhan
Untuk aplikasi yang harus memenuhi standar tertentu, docker logs adalah bukti pertama yang menunjukkan apakah aplikasi mematuhi pedoman yang berlaku. Log ini juga berperan penting dalam memantau aktivitas yang diizinkan maupun yang tidak diizinkan.
-
Optimasi
Log adalah sumber daya berharga untuk optimasi perangkat lunak karena menyediakan data performa. Misalnya, developer dapat mengidentifikasi query yang lambat, alur kode yang tidak efisien, atau resource yang kurang dimanfaatkan.
Membuat Recipe Docker: Deploy Web Server
Di bagian ini, kita akan membuat recipe Docker bersama-sama. Pertama, kita perlu membangun sesuatu sebagai titik awal perjalanan dengan Docker Compose logs. Mari deploy sebuah web server untuk tujuan ini. Untuk membuat Dockerfile, cukup jalankan nano Dockerfile di folder yang diinginkan pada VPS Anda dengan isi berikut, lalu simpan:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Lalu, apa fungsi setiap baris kode ini?
- Kita mulai dengan base image yang ringan, nginx:alpine.
- Selanjutnya, kita hapus halaman selamat datang default Nginx.
- Kemudian, kita pastikan web server mendengarkan pada port 80.
- Terakhir, kita jalankan server Nginx dengan CMD.
Sekarang file Docker kita sudah siap, kita lanjut ke langkah berikutnya, yaitu membuat file Docker Compose. Berikut struktur dari docker-compose.yml berkas:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Mari kita bahas satu per satu secara menyeluruh:
- Kami menggunakan versi 3.8.
- Pada baris berikutnya, kita beri nama layanan kita ""web“.
- Selanjutnya, kita instruksikan Docker untuk membangun web server dari folder saat ini.
- Kami menghubungkan port 8080 di host ke port 80 di dalam container agar web server dapat menerima koneksi.
- Terakhir, konfigurasi volumes melakukan pemetaan index.html dari disk host ke dalam container. Setelah itu, Anda bisa membuat sebuah index.html file dengan konten apa pun yang Anda inginkan, lalu letakkan di tempat yang Dockerfile dan docker-compose.yml file sudah ada.
Sekarang saatnya menjalankan container Docker kita menggunakan Docker Compose. Cukup jalankan docker-compose up.

Setelah Anda menjalankan perintah docker-compose up perintah, Docker akan mengunduh image yang diperlukan dari internet dan mengonfigurasinya sesuai dengan file konfigurasi kita.
Untuk memastikan web server sudah berjalan, buka browser, ketik alamat IP VPS, lalu akses port 8080.

Sebagai catatan tambahan, Anda bisa menggunakan docker-compose up -d untuk menjalankan container di latar belakang.
Mengakses Log dengan Docker Compose
Sekarang, web server kita sudah siap dan berjalan. Server ini sudah mulai menghasilkan log dan menyimpan informasi tersebut untuk keperluan selanjutnya. Mengakses log Docker Compose sangat penting untuk pemecahan masalah dan pemantauan. Tapi bagaimana cara membacanya? Di sinilah log docker-compose sangat berguna. Pastikan Anda berada di folder tempat konfigurasi tersimpan, lalu jalankan perintah tersebut.

Terkadang, kamu mungkin ingin melihat log secara langsung saat log tersebut sedang dibuat. Cukup tambahkan -f di akhir perintah sebelumnya dan jalankan docker-compose logs -f.

Beberapa aplikasi berbasis Docker mungkin tidak menyertakan timestamp di log mereka. Untuk itu, Anda bisa menggunakan docker-compose logs -t untuk menambahkan waktu yang tercatat pada setiap baris log.

Docker Logs juga dapat menampilkan entri terbaru. Untuk melakukan ini, gunakan docker-compose logs –tail 10 untuk melihat 10 entri log terakhir. Docker composes logs tail, dan begitu pula docker logs tail sangat berguna ketika kamu ingin memeriksa aktivitas terkini dengan cepat tanpa harus menggulir seluruh riwayat log.

Tujuan utama penggunaan Docker Compose adalah membuat aplikasi multi-container. Oleh karena itu, kamu mungkin perlu membaca log tertentu untuk layanan yang diinginkan. Untuk melakukannya, gunakan docker-compose logs -f SERVICE, mengingat untuk mengganti SERVICE dengan nama layanan aktualmu.

Pencatatan Docker
Ekosistem Docker bisa menjadi lebih kompleks untuk aplikasi yang terkonvergensi, terutama di lingkungan berskala besar. Seperti yang sudah kita ketahui, setiap container menghasilkan log. Oleh karena itu, mekanisme yang dikenal sebagai Logging Driver bertanggung jawab untuk menerima, mengirimkan, dan menyimpan log. Secara default, Docker menggunakan file JSON untuk Logging Driver, tetapi juga mendukung berbagai driver lain, masing-masing dengan kelebihan dan kekurangannya.
Semua pihak sepakat bahwa log sangat penting dalam berbagai aspek, termasuk pemecahan masalah dan peningkatan performa sistem. Di bawah ini, kita akan membahas dua aspek utama penggunaan log container:
- Pemantauan: Tujuan utama log adalah pemantauan. Log umumnya mencerminkan kondisi keseluruhan aplikasi yang berjalan di container.
- Pemecahan Masalah: Ketika terjadi masalah, log membantu kita mendeteksi gangguan pada aplikasi.
Karena docker logs dan docker compose logs terus-menerus dibuat, keduanya dapat memenuhi seluruh penyimpanan VPS. Oleh karena itu, kita memerlukan strategi pengelolaan ruang disk yang disebut Log Rotation Policy. Untuk membuat dan menggunakan kebijakan ini, kembali ke docker-compose.yml file dan buka. Kemudian, tambahkan bagian logging dengan konfigurasi berikut:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.htm:/usr/share/nginx/html/index.htm logging: driver: json-file options: max-size: "200k" max-file: "10"
Kamu dapat menyesuaikan max-size dan max-file sesuai kebutuhanmu.
Model Pengiriman Log Docker
Di lingkungan yang lebih kompleks, engineer mungkin memilih model logging selain driver JSON default, seperti Syslog, fluentd, dan lainnya. Namun, penting untuk diingat bahwa driver JSON-file cocok untuk sebagian besar skenario logging, dan mungkin tidak ada kebutuhan untuk beralih dari mode default.
Bergantung pada arsitektur aplikasi atau kebutuhan organisasi, kamu mungkin perlu menggunakan solusi logging terpusat yang dikenal sebagai Log Aggregator. Layanan-layanan ini, termasuk Elasticsearch, Logstash, Kibana, dan lainnya, dirancang untuk menerima log dari berbagai sumber, lalu mengkonsolidasikan, menyimpan, dan menganalisisnya dalam satu lokasi terpusat.
Selain itu, kamu sebaiknya menyimpan log menggunakan solusi penyimpanan yang lebih hemat biaya. Pertimbangkan skenario di mana VPS menggunakan penyimpanan berkecepatan tinggi dan mahal. Menggunakan sumber daya premium seperti itu hanya untuk menyimpan log yang mungkin hanya kamu butuhkan sebagai referensi di masa mendatang tentu tidak efisien secara biaya.
Ada banyak model logging yang tersedia, masing-masing dengan kelebihan dan kekurangannya. Mengevaluasi setiap model dengan cermat dan memilih yang paling sesuai dengan kebutuhan spesifikmu adalah hal yang penting.
Dapatkan Linux VPS paket ekonomi atau premium untuk kebutuhan hosting website atau remote desktop, dengan harga paling terjangkau. VPS berjalan di atas Linux KVM untuk efisiensi lebih tinggi, didukung hardware bertenaga dengan penyimpanan NVMe SSD untuk kecepatan optimal.
Baca SelengkapnyaKesimpulan
Memahami Docker Compose logs adalah hal yang krusial. Log ini membantu mengelola dan men-debug aplikasi Docker dengan baik. Mempelajari cara mengakses dan memantau log ini meningkatkan kemampuan pemecahan masalah serta performa dan keamanan aplikasimu. Baik saat pengembangan maupun administrasi sistem, penggunaan Docker Compose logs sangat diperlukan untuk memastikan manajemen container berjalan efektif.
Pertanyaan yang Sering Diajukan
Bagaimana cara memfilter log Docker Compose berdasarkan waktu?
Docker Compose tidak menyediakan metode langsung untuk memfilter log berdasarkan waktu. Namun, kamu dapat memfilter log dengan menyalurkannya melalui grep untuk pencocokan pola. Misalnya, gunakan: docker-compose logs | grep "2023-04-06", ganti "2023-04-06" dengan tanggal atau pola waktu spesifik yang kamu cari.
Bagaimana cara menghentikan container yang dijalankan dengan Docker Compose?
Navigasikan ke direktori yang berisi file docker-compose.yml dan jalankan perintah docker-compose down.
Bagaimana cara menghapus file log secara manual?
Sebagai alternatif dari mengonfigurasi log rotation di file docker-compose.yml, kamu dapat menghapus file log Docker JSON secara manual dari /var/lib/docker/containers/<container_id>/. Sebelum melakukannya, identifikasi terlebih dahulu ID container Docker dengan docker ps -a.
Bisakah saya memantau log Docker secara real-time?
Ya, bisa. Caranya gunakan perintah docker logs dengan opsi -f atau --follow. Perintah ini akan menampilkan log Docker secara langsung.