CodeGym /Các khóa học /Docker SELF /Làm việc với logs của containers

Làm việc với logs của containers

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

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.

Terminal


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.

Terminal


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ý.

Terminal


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).

Terminal


docker logs --since "2023-07-20T15:00:00" my_container 

Hoặc

Terminal


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.

Terminal


docker logs --until "2023-07-20T16:00:00" my_container 

Hoặc

Terminal


docker logs --until 10m my_container 

5. Kết hợp stdoutstderr

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--stderr.

Terminal


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.

Terminal


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.

Terminal


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.

Terminal


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.

Terminal


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.

Terminal


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--until.

Terminal

        
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container 
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION