aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Docker json-file: giới hạn log trong Compose và kiểm tra container đã nhận cấu hình

Suong Nguyen by Suong Nguyen
27/10/2026
in DevOps
0
585
SHARES
3.2k
VIEWS
Summarize with ChatGPTShare to Facebook

Container chạy ổn không có nghĩa là log của nó ngừng tăng. Một service liên tục ghi ra stdout có thể làm phân vùng Docker đầy dần. Khi dùng driver json-file, hãy kiểm tra chính sách xoay vòng trước khi kết luận rằng file log đã có giới hạn.

Bài này tập trung vào Docker Engine, driver json-file và cấu hình service của Docker Compose. Tài liệu chính thức được đối chiếu ngày 27/10/2026. Các lệnh dưới dành để bạn kiểm tra môi trường của mình; lượt biên tập chưa chạy Docker daemon, tạo container hay đo dung lượng thực tế.

1. Xác định log nào đang được nói tới

Docker có thể thu stdout và stderr của tiến trình trong container qua logging driver. Một ứng dụng tự ghi vào /app/logs/server.log là một luồng lưu trữ khác. Đổi logging driver không tự xoay vòng file mà ứng dụng ghi trong volume.

Trước khi sửa cấu hình, xem phiên bản công cụ và thông tin service trong môi trường thử nghiệm:

docker --version
docker compose version
docker compose ps

Xác định đúng Compose project và tên service. Các ví dụ tiếp theo dùng service tên api; hãy thay bằng tên trong dự án của bạn. Không chạy lệnh tạo lại container trên production chỉ để thử một bài hướng dẫn.

2. Thêm chính sách riêng cho service

Thêm block logging vào service api đã có image hoặc build trong compose.yaml. Đây là một phần cấu hình, chưa phải file Compose hoàn chỉnh:

services:
  api:
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

max-size đặt kích thước để bắt đầu xoay file. max-file đặt số file được giữ; nó chỉ có hiệu lực khi có giới hạn kích thước. Giá trị chuỗi trong ví dụ tránh việc số 3 bị YAML đọc thành số thay vì option dạng chuỗi.

Đây là chính sách giữ log ngắn hạn cho từng container, không phải quota cho toàn bộ phân vùng. Số replica, các container khác, image, build cache, volume và phần lưu trữ của ứng dụng vẫn chiếm chỗ. Cũng không nên dùng phép nhân 10 × 3 như một cam kết byte chính xác của mọi trạng thái ghi log.

3. Tạo container mới rồi đọc lại cấu hình

Kiểm tra file Compose trước:

docker compose config --quiet

Trong môi trường thử nghiệm phù hợp, tạo lại riêng service đã sửa:

docker compose up -d --no-deps --force-recreate api

Lệnh này thay container của service và có thể gây gián đoạn. Trước khi dùng ở môi trường thật, kiểm tra volume, dữ liệu chưa lưu và kế hoạch cập nhật của nhóm. --no-deps tránh chủ động tạo lại các dependency, nhưng không làm việc thay container trở thành thao tác không gián đoạn.

docker compose restart api chỉ khởi động lại container hiện có; đừng dùng nó làm bằng chứng rằng logging option mới đã được áp dụng. Với thay đổi default ở daemon, các container cũ cũng giữ cấu hình lúc chúng được tạo. Tập trung kiểm tra container đang chạy thay vì chỉ đọc file cấu hình mong muốn.

4. Xác nhận từng container của service

docker compose ps -q api
docker inspect --format '{{json .HostConfig.LogConfig}}' CONTAINER_ID
docker logs --tail 50 CONTAINER_ID

Thay CONTAINER_ID bằng một ID từ lệnh đầu, rồi kiểm tra từng ID nếu service có nhiều replica. Kết quả inspect cần thể hiện Type là json-file và các option max-size, max-file bạn đặt. File Compose parse thành công chưa chứng minh container đã nhận cấu hình; inspect bổ sung bằng chứng đó.

Lệnh xem log chỉ cho bạn một cửa sổ nội dung. Muốn thử rotation, dùng một workload thử nghiệm ghi đủ log, quan sát dung lượng và xác nhận log cũ được thay theo chính sách. Bài không đưa kết quả dung lượng vì chưa thực hiện thử nghiệm này.

Lỗi thường gặp và bước tiếp theo

Nếu inspect vẫn là driver khác, kiểm tra bạn có đang xem đúng project, file override và container mới hay không. Nếu max-file có mà log vẫn không xoay, đối chiếu thêm max-size. Nếu phân vùng vẫn tăng nhanh, phân loại nơi chiếm chỗ trước khi đổi tiếp driver.

Không sửa, truncate hoặc tự xóa file log nội bộ của Docker bằng công cụ ngoài. Tài liệu Docker mô tả các file này do daemon quản lý; dùng giao diện quản lý log phù hợp và kế hoạch vận hành rõ ràng.

Docker cũng có driver local với cơ chế rotation mặc định; hãy đọc tài liệu và yêu cầu thu thập log của hệ thống trước khi chọn. Bài dùng json-file để giải thích một cấu hình phổ biến, không xếp hạng driver nào luôn tốt hơn.

Khi cần giữ log lâu dài, thiết kế nơi tập trung log cùng thời hạn lưu và kiểm soát dữ liệu nhạy cảm. Rotation tại container và lưu trữ phục vụ điều tra là hai nhu cầu cần được cấu hình cùng nhau.

Nguồn tham khảo

  • Docker: JSON File logging driver và các option
  • Docker: Cấu hình logging drivers
  • Docker Compose: Service logging

Tags: DockerDocker ComposeLogging
SummarizeShare234
Suong Nguyen

Suong Nguyen

Related Stories

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

systemd timer: ghi rõ múi giờ và hiểu Persistent trước khi chạy lịch hằng ngày

by Suong Nguyen
26/10/2026
0

Đọc lịch OnCalendar theo Asia/Ho_Chi_Minh, kiểm tra bằng systemd-analyze và phân biệt một lần kích hoạt bù với xử lý toàn bộ công việc bị lỡ.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

GitHub Actions concurrency: giữ lượt đang chạy chưa chắc giữ mọi lượt chờ

by Suong Nguyen
25/10/2026
0

Hiểu running, pending và cancel-in-progress để chọn concurrency group mà không vô tình bỏ lượt chờ hoặc hủy sai workflow.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Docker build context và .dockerignore: kiểm tra file nào được COPY

by Suong Nguyen
24/10/2026
0

Dùng một Dockerfile chẩn đoán nhỏ để hiểu build context, quy tắc .dockerignore và kiểm tra file trước khi đưa vào image.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

GitHub Actions: giới hạn quyền khi kiểm tra pull request

by Suong Nguyen
23/10/2026
0

Rà trigger, GITHUB_TOKEN và checkout để pipeline kiểm tra pull request không vô tình được cấp quyền deploy.

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native SectionList: nhóm dữ liệu với key và tiêu đề riêng cho từng phần
  • Phỏng vấn JavaScript: Object.is khác === thế nào với NaN, +0 và -0?
  • Android Sharesheet: chia sẻ văn bản và đường dẫn bằng ACTION_SEND

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply