4.1 Cơ bản về lệnh docker logs
Lệnh docker logs là một công cụ tiện lợi để giám sát và debug các containers. Bằng cách sử dụng nó, các lập trình viên và quản trị viên hệ thống có thể xem logs của containers, từ đó giúp chẩn đoán vấn đề và phân tích hoạt động của ứng dụng. Trong bài giảng này, tụi mình sẽ xem chi tiết cách sử dụng lệnh docker logs, những tham số nào có sẵn và cách quản lý logs hiệu quả.
Lệnh docker logs hiển thị logs của container được chỉ định. Các logs này bao gồm tất cả tin nhắn được ghi lại bởi các processes bên trong container vào các luồng đầu ra tiêu chuẩn (stdout) và lỗi (stderr).
Cú pháp
docker logs [OPTIONS] CONTAINER
Ở đây:
-
CONTAINER: tên hoặc định danh của container mà bạn muốn xem logs. -
OPTIONS: những tham số bổ sung để cấu hình hiển thị logs.
Ví dụ sử dụng cơ bản
Lệnh này sẽ hiển thị tất cả logs đã được ghi lại của container my_container.
docker logs my_container
4.2 Các tham số của lệnh docker logs
Lệnh docker logs hỗ trợ một số tùy chọn cho phép cấu hình outputs của logs theo nhu cầu cụ thể.
1. Xem logs theo thời gian thực
Để xem logs theo thời gian thực, sử dụng tham số -f (follow). Tham số này cho phép theo dõi cập nhật của logs khi chúng xuất hiện, tương tự như lệnh tail -f.
docker logs -f my_container
2. Giới hạn số lượng dòng hiển thị
Bạn có thể giới hạn số dòng được hiển thị bởi lệnh docker logs với tham số --tail. Điều này rất hữu ích nếu bạn chỉ cần những dòng logs gần đây mà không cần toàn bộ nhật ký.
docker logs --tail 100 my_container
Ví dụ này sẽ hiển thị chỉ 100 dòng logs gần nhất của container my_container.
3. Hiển thị logs từ thời gian cụ thể
Tham số --since cho phép hiển thị logs bắt đầu từ thời gian được chỉ định. Thời gian có thể được chỉ định ở định dạng timestamp (ví dụ: 2023-07-20T15:00:00) hoặc định dạng tương đối (ví dụ: 1h cho logs trong vòng 1 giờ gần đây).
docker logs --since "2023-07-20T15:00:00" my_container
Hoặc
docker logs --since 1h my_container
4. Hiển thị logs tới thời gian cụ thể
Tham số --until cho phép hiển thị logs tới thời gian được chỉ định. Định dạng thời gian tương tự như tham số --since.
docker logs --until "2023-07-20T16:00:00" my_container
Hoặc
docker logs --until 10m my_container
5. Kết hợp stdout và stderr
Theo mặc định, lệnh docker logs hiển thị cả luồng xuất chuẩn (stdout) và luồng lỗi chuẩn (stderr). Bạn có thể chỉ định các luồng cần hiển thị bằng cách sử dụng các tham số --stdout và --stderr.
docker logs --stdout my_container
Ví dụ này sẽ chỉ hiển thị các thông báo từ luồng xuất chuẩn.
4.3 Ví dụ sử dụng
Ví dụ 1: xem các dòng logs cuối cùng và theo dõi thay đổi
Ví dụ này sẽ hiển thị 50 dòng logs cuối cùng của container my_container và theo dõi thêm các bản ghi mới theo thời gian thực.
docker logs -f --tail 50 my_container
Ví dụ 2: xuất logs trong 24 giờ qua
Ví dụ này sẽ hiển thị tất cả logs được ghi lại trong vòng 24 giờ qua cho container my_container.
docker logs --since 24h my_container
Ví dụ 3: xuất logs trong một khoảng thời gian cụ thể
Ví dụ này sẽ hiển thị logs được ghi lại trong khoảng từ 15:00 đến 16:00 ngày 20 tháng 7 năm 2023 cho container my_container.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Kịch bản thực hành
1. Debug ứng dụng
Nếu ứng dụng của bạn hoạt động không đúng hoặc bị “sập”, xem logs có thể giúp chuẩn đoán vấn đề. Sử dụng lệnh docker logs để tìm lỗi và cảnh báo trong logs.
docker logs my_app_container
2. Giám sát hoạt động của server
Để giám sát hoạt động của server trong thời gian thực, bạn có thể sử dụng lệnh docker logs với tùy chọn -f.
docker logs -f web_server_container
Điều này cho phép bạn theo dõi các yêu cầu và phản hồi của server trong thời gian thực.
3. Phân tích hiệu suất
Nếu bạn muốn phân tích hiệu suất ứng dụng trong một khoảng thời gian nhất định, hãy sử dụng các tham số --since và --until.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
GO TO FULL VERSION