CodeGym /Các khóa học /Docker SELF /Ghi log container

Ghi log container

Docker SELF
Mức độ , Bài học
Có sẵn

6.1 Các chức năng chính của lệnh docker logs

Ghi log của container là một phần quan trọng trong việc quản lý và giám sát các ứng dụng Docker. Log cho phép theo dõi hành vi của container, chẩn đoán vấn đề và hiểu cách ứng dụng hoạt động bên trong container. Trong bài giảng này, chúng mình sẽ tìm hiểu chi tiết cách sử dụng lệnh docker logs để ghi log container.

Các chức năng chính của lệnh docker logs

Lệnh docker logs được dùng để lấy và xem log của các container. Nó cho phép:

  • Xem đầu ra chuẩn (stdout) và đầu ra lỗi chuẩn (stderr) của container.
  • Lọc và theo dõi log theo thời gian thực.
  • Tìm kiếm và phân tích log để chẩn đoán vấn đề.

6.2 Sử dụng lệnh docker logs

1. Xem log của container

Để xem log của container, sử dụng lệnh:

Terminal

docker logs <container_id_or_name>

Ví dụ:

Terminal

docker logs my_container 

Lệnh này sẽ hiển thị tất cả log của container my_container.

2. Theo dõi log theo thời gian thực

Để theo dõi log theo thời gian thực, sử dụng flag -f (hoặc --follow):

Terminal

docker logs -f <container_id_or_name>

Ví dụ:

Terminal

docker logs -f my_container

Lệnh này sẽ hiển thị log mới khi chúng được tạo ra.

3. Giới hạn số dòng log hiển thị

Để giới hạn số dòng hiển thị khi sử dụng lệnh docker logs, sử dụng flag --tail:

Terminal

docker logs --tail <number_of_lines> <container_id_or_name>

Ví dụ:

Terminal

docker logs --tail 10 my_container

Lệnh này sẽ hiển thị 10 dòng cuối cùng trong log của container my_container.

4. Hiển thị log bắt đầu từ một thời gian cụ thể

Để hiển thị log, bắt đầu từ một thời gian cụ thể, sử dụng flag --since:

Terminal

docker logs --since <timestamp> <container_id_or_name>

Ví dụ:

Terminal

docker logs --since 2022-01-01T00:00:00 my_container

Lệnh này sẽ hiển thị log của container my_container, bắt đầu từ ngày 1 tháng 1 năm 2022.

5. Hiển thị log cho đến một thời gian cụ thể

Để hiển thị log cho đến một thời gian cụ thể, sử dụng flag --until:

Terminal

docker logs --until <timestamp> <container_id_or_name>

Ví dụ:

Terminal

docker logs --until 2022-01-02T00:00:00 my_container

Lệnh này sẽ hiển thị log của container my_container cho đến ngày 2 tháng 1 năm 2022.

6.3 Ví dụ sử dụng docker logs

Ví dụ 1: Chẩn đoán lỗi ứng dụng

Nếu ứng dụng của bạn trong container đột ngột bị lỗi, bạn có thể dùng docker logs để chẩn đoán nguyên nhân:

Terminal

docker logs my_app_container 

Xem log có thể giúp bạn hiểu điều gì đã xảy ra sai và tại sao ứng dụng bị lỗi.

Ví dụ 2: Theo dõi hoạt động của service

Để theo dõi hoạt động của web service theo thời gian thực, sử dụng flag -f:

Terminal

docker logs -f web_service_container 

Lệnh này sẽ cho phép bạn xem tất cả các log mới đến từ web service.

Ví dụ 3: Phân tích log trong khoảng thời gian nhất định

Nếu bạn cần phân tích log trong khoảng thời gian cụ thể, sử dụng flags --since--until:

Terminal

docker logs --since "2023-07-01" --until "2023-07-02" my_app_container 

Lệnh này sẽ xuất log của container my_app_container trong ngày 1 tháng 7 năm 2023.

6.4 Cấu hình driver logging Docker

Docker hỗ trợ nhiều driver logging khác nhau có thể cài đặt cho container. Các driver logging chính bao gồm:

  • json-file: Mặc định. Log được lưu trong file với định dạng JSON.
  • syslog: Log được gửi tới hệ thống nhật ký (syslog).
  • journald: Log được gửi tới hệ thống journald.
  • gelf: Log được gửi tới server hỗ trợ giao thức GELF (Graylog Extended Log Format).
  • fluentd: Log được gửi tới server Fluentd.

Cài đặt driver logging

Để cài đặt driver logging, sử dụng flag --log-driver khi chạy container:

Terminal

docker run --log-driver <driver_name> <container_image>

Ví dụ:

Terminal

docker run --log-driver syslog my_app_image

Ví dụ này chạy container sử dụng driver logging syslog.

Cấu hình tham số logging

Bạn có thể chỉ định tham số logging bằng flag --log-opt:

Terminal

docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION