Hướng dẫn xóa logs docker, giới hạn file log docker

Bài viết được sự cho phép của tác giả Trần Hữu Cương

Hướng dẫn xóa logs docker, giới hạn file log docker.

1. Xóa log của docker

Nếu bạn cài docker, sau một thời gian sẽ thấy ổ cứng rất nhanh bị đầy (nhất là các server chạy nhiều docker container và ghi log liên tục). Trong khi kiểm tra thì docker images và docker container ko chiếm mấy dung lượng.

  25 blogger IT nổi tiếng mà dân lập trình ai cũng phải biết
  Câu chuyện về cái comment tại một blog nọ

Nếu kiểm tra kỹ thì sẽ thấy dung lượng của 2 folder sau rất lớn:

./var/lib/docker/containers

./var/lib/docker

Mặc định docker lưu log trong folder /var/lib/docker/containers, và mặc định thì log sẽ ko bị giới hạn kích thước nên sẽ tăng dần theo thời gian.

Để xóa log, ta dùng câu lệnh sau:

sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'

Ví dụ trước khi xóa log:

Hướng dẫn xóa logs docker, giới hạn file log docker

Kết quả sau khi xóa log

Hướng dẫn xóa logs docker, giới hạn file log docker

2. Giới hạn kích thước file logs của docker

2.1 Cách thứ nhất:

Giới hạn logs của từng docker container khi run với lựa chọn --log-driver--log-opt để quyết định bao nhiêu file log được ghi ra, kích thước mỗi file là bao nhiêu…

Ví dụ:

docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 ...

Hoặc nếu sử dụng docker compose:

version: '3.7'

services:

 app:

 image: ...

 logging:

 options:

 max-size: "10m"

 max-file: "3"

2.2 Cách thứ hai:

Thiết lập logrotate để xóa log định kì bằng cách:

Sửa file /etc/logrotate.d/docker-logs (nếu chưa có thì tạo mới) với nội dung sau:

/var/lib/docker/containers/*/*.log {

 rotate 7

 daily

 compress

 size=50M

 missingok

 delaycompress

 copytruncate

}

Okay, Done!

References: https://stackoverflow.com/…/how-to-clear-the-logs-properly-for-a-docker-container

Bài viết gốc được đăng tải tại stackjava.com

Có thể bạn quan tâm:

Xem thêm Việc làm IT hấp dẫn trên TopDev