- Khi vận hành dịch vụ trên máy chủ Linux bằng cách triển khai ứng dụng với Docker, đôi khi sẽ xuất hiện tình trạng báo thiếu dung lượng đĩa
- Ngay cả khi lượng dữ liệu và dung lượng log thực tế do ứng dụng tạo ra và lưu trữ không nhiều, toàn bộ dung lượng lưu trữ của hệ thống vẫn có thể bị đầy
- Một trong những nguyên nhân gây thiếu dung lượng lưu trữ khi sử dụng Docker là 'log container Docker'
- Trình điều khiển ghi log Docker và vị trí log
- Trình điều khiển ghi log: Docker bao gồm cơ chế ghi log giúp lấy thông tin từ các container và dịch vụ đang chạy, đó chính là trình điều khiển ghi log
- Lệnh
docker logs: hiển thị thông tin do container đang chạy ghi lại
- Lệnh
docker service logs: hiển thị thông tin do tất cả container tham gia vào dịch vụ ghi lại
- Docker sử dụng trình điều khiển ghi log
json-file, trình này ghi lại stdout hoặc stderr của mọi log container vào tệp dưới định dạng JSON
- Khi chạy container Docker bằng lệnh
docker run hoặc docker-compose up, tệp /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log sẽ được tạo và log sẽ được ghi vào đó
- Trình điều khiển ghi log
json-file không thực hiện log rotation
- Nếu container tạo ra lượng đầu ra lớn, tệp log được lưu bằng trình điều khiển này có thể chiếm đáng kể dung lượng đĩa, dẫn đến cạn kiệt dung lượng
- Giảm kích thước log container Docker
- Khi chạy lệnh
docker rm hoặc docker-compose down, container Docker sẽ bị xóa, đồng thời thư mục tương ứng với [Container-ID] bên dưới /var/lib/docker/containers cũng bị xóa
- Nhờ vậy, tệp
[Container-ID]-json.log đang chiếm nhiều dung lượng đĩa cũng sẽ bị xóa theo, giúp giải phóng dung lượng đĩa toàn hệ thống
- Khi chạy lệnh
truncate -s 0 <json-log-file>, có thể đưa kích thước tệp log về 0
- Thiết lập log rotation
- Có thể kích hoạt log rotation bằng cách chỉ định kích thước tối đa của tệp log (
max-size) và số lượng tệp tối đa (max-file)
- Khi kích thước tệp đạt đến giá trị tối đa đã cấu hình, Docker sẽ chuyển sang tệp mới; các tệp cũ sẽ được tạo lần lượt như
...-json.log.1, ...-json.log.2 cho đến số lượng tối đa
- Nếu vượt quá giới hạn, tệp cũ nhất sẽ bị xóa để ngăn kích thước tệp log của container Docker tăng vô hạn
Chưa có bình luận nào.