Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
9 phút còn lại
Công Cụ Phát Triển & DevOps

Hướng Dẫn Dễ Dàng về Docker Compose Logs: Cách Kiểm Tra và Quản Lý

Ada Lovegood By Ada Lovegood 9 phút đọc Cập nhật 23 tháng 2, 2025
docker logs

Bạn muốn biết các ứng dụng Docker đang làm gì phía sau? Hãy tìm hiểu thêm về cửa sổ bí mật được gọi là logs, cho phép bạn xem từng hành động của chúng trong containers. Logs rất hữu ích để khắc phục sự cố. Nhưng trước khi bắt đầu, hãy xem nhanh Docker và Docker Compose là gì.

Docker cho phép bạn đóng gói các ứng dụng của mình vào các container nhỏ và chạy chúng trên hầu hết các hệ điều hành mà không cần bất kỳ phụ thuộc nào. Nó giống như đặt các ứng dụng của bạn trong những hộp nhỏ gọi là Containers, có thể chạy giống nhau ở mọi nơi. Hiểu rõ về containers là điều kiện tiên quyết quan trọng để học Docker Compose. Vì vậy, tôi khuyên bạn trước tiên nên đọc bài viết của chúng tôi về những lợi ích của containerization.

Docker Compose đi kèm với Docker và đơn giản hóa việc phát triển nhiều ứng dụng được container hóa bằng cách kết nối các service, network và storage của chúng. Docker container logs và Docker Compose logging giúp developer nhìn thấy từng container đang làm gì.

Vậy, bạn có tò mò về Docker Compose Logs không? Bạn đang ở đúng nơi. Bài viết này sẽ giải thích những kiến thức cơ bản về Docker Compose logs và đề cập các chi tiết nâng cao hơn. Tìm hiểu cách tận dụng tối đa Docker Compose cho các dự án của bạn.

Tầm Quan Trọng của Docker Compose Logs

Hình dung một developer triển khai ứng dụng với Docker nhưng bỏ qua việc thiết lập Docker logs. Lúc đầu mọi thứ có vẻ ổn. Nhưng sớm sau đó, người dùng phát hiện lỗi và ứng dụng chạy chậm. Nếu không có Docker logs, developer không thể thấy được điều gì sai trong Docker containers. Docker Compose logs giống như một bản ghi chi tiết của những container này. Chúng ghi lại mọi chi tiết của những gì xảy ra, điều này rất quan trọng để tìm ra và sửa chữa các vấn đề sau này.

Là một Developer hoặc System Admin, bạn phải hiểu những gì xảy ra bên trong và giữa các ứng dụng multi-chain. Đây là nơi mà Docker Compose logs đóng vai trò như một công cụ hữu ích. Vậy, tại sao những logs này lại cần thiết?

  • Khắc Phục Sự Cố và Gỡ Lỗi

Kiểm tra docker logs khi ứng dụng không chạy đúng hoặc gặp lỗi. Docker logs là tài nguyên đầu tiên bạn có thể xem để theo dõi vấn đề. Bằng cách kiểm tra docker logs, developer có thể xác định nguyên nhân gốc rễ và nguồn của các vấn đề, dù là lỗi trong code, cấu hình sai, hay vấn đề về tài nguyên.

  • Giám Sát Sức Khỏe Ứng Dụng

Giám sát thường xuyên application logs giúp hiểu được tình trạng sức khỏe tổng thể của các service. Logs có thể phát hiện những dấu hiệu cảnh báo sớm, chẳng hạn như lỗi lặp lại và phản hồi chậm. Quan sát những mô hình này sớm có thể ngăn chặn các vấn đề tiềm ẩn trong tương lai.

  • Kiểm Toán và Tuân Thủ

Đối với các ứng dụng cần tuân theo các tiêu chuẩn cụ thể, docker logs là bằng chứng đầu tiên cho thấy liệu ứng dụng có tuân thủ các hướng dẫn hay không. Những logs này cũng đóng vai trò thiết yếu trong việc giám sát các hoạt động được phép hoặc không được phép.

  • Tối ưu hóa

Logs là những tài nguyên quý giá để tối ưu hóa phần mềm bằng cách cung cấp dữ liệu hiệu suất. Ví dụ, developer có thể xác định các truy vấn chạy chậm, đường mã không hiệu quả, hoặc tài nguyên được sử dụng không đầy đủ.

Tạo Công Thức Docker: Triển Khai Web Server

Trong phần này, chúng ta sẽ tạo một công thức Docker cùng nhau. Trước tiên, chúng ta cần xây dựng một cái gì đó để bắt đầu hành trình với Docker Compose logs. Chúng ta sẽ triển khai một web server cho mục đích này. Để tạo một Dockerfile, chỉ cần chạy nano tệp Dockerfile trong thư mục mong muốn trên VPS của bạn với nội dung sau và sau đó lưu nó:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Vậy, mỗi dòng code này làm gì?

  • Chúng ta bắt đầu với một base nhẹ, nginx:alpine.
  • Tiếp theo, chúng ta xóa trang welcome mặc định của Nginx.
  • Sau đó, chúng ta đảm bảo rằng web server đang lắng nghe trên port 80.
  • Cuối cùng, chúng ta chạy Nginx server với CMD.

Bây giờ Dockerfile của chúng ta đã sẵn sàng, chúng ta sẽ tiếp tục bước tiếp theo, đó là tạo Docker Compose file. Đây là cấu trúc của docker-compose.yml tệp:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

Chúng ta hãy phân tích nó để hiểu hoàn toàn từng phần:

  • Chúng tôi đang sử dụng phiên bản 3.8.
  • Trên dòng tiếp theo, chúng ta đặt tên service của chúng ta là ""web“.
  • Sau đó, chúng ta hướng dẫn Docker xây dựng web server của chúng ta từ thư mục hiện tại.
  • Chúng ta liên kết port 8080 trên host của chúng ta với port 80 trong container của chúng ta để cho phép web server của chúng ta thiết lập một kết nối.
  • Cuối cùng, cấu hình volumes ánh xạ index.html từ đĩa host tới container. Sau đó, bạn có thể tạo một index.html file với bất kỳ nội dung nào bạn muốn và đặt nó ở nơi Dockerfiledocker-compose.yml các tệp đã tồn tại.

Bây giờ đã đến lúc chúng ta chạy Docker container của chúng ta với Docker Compose. Chỉ cần chúng ta chạy docker-compose up.

chạy container Docker với Docker Compose Docker

Khi bạn chạy docker-compose up lệnh, Docker sẽ tải xuống các image cần thiết từ internet và cấu hình chúng theo hướng dẫn trong các tệp cấu hình của chúng tôi.

Để kiểm tra xem web server có đang chạy, hãy mở trình duyệt web, nhập địa chỉ IP VPS của bạn, và truy cập cổng 8080.

trang web chạy trong Docker

Lưu ý thêm, bạn có thể sử dụng docker-compose up -d để chạy container ở chế độ nền.

Truy Cập Logs bằng Docker Compose

Lúc này, web server của chúng ta đã sẵn sàng và đang hoạt động. Nó đang tạo log và lưu trữ thông tin này để sử dụng sau. Việc kiểm tra log của Docker Compose là cần thiết để khắc phục sự cố và giám sát. Nhưng làm cách nào để đọc những log này? Đó là lúc nhật ký docker-compose phát huy tác dụng. Hãy đảm bảo bạn đang ở thư mục chứa tệp cấu hình, rồi chạy lệnh đó.

Truy Cập Logs bằng Docker Compose

Đôi khi, bạn muốn xem phiên bản trực tiếp của log khi chúng đang được tạo. Chỉ cần thêm -f vào cuối lệnh trước đó và chạy docker-compose logs -f.

Truy Cập Logs bằng Docker Compose

Một số ứng dụng dựa trên Docker có thể không cung cấp dấu thời gian trong log của chúng. Do đó, bạn có thể sử dụng docker-compose logs -t để thêm thời gian ghi lại cho mỗi dòng log.

Truy Cập Logs bằng Docker Compose

Log Docker cũng có thể hiển thị các mục gần nhất. Để làm điều này, hãy sử dụng docker-compose logs --tail 10 để xem 10 mục log mới nhất. Docker Compose logs tail của Docker, tương tự như docker logs tail, rất hữu ích khi bạn muốn nhanh chóng kiểm tra hoạt động gần đây mà không cần cuộn qua toàn bộ lịch sử log.

truy cập log với Docker Compose

Mục đích chính của việc sử dụng Docker Compose là tạo các ứng dụng đa container. Do đó, bạn có thể cần đọc log của một dịch vụ cụ thể. Để làm điều này, hãy sử dụng docker-compose logs -f SERVICE, ghi nhớ để thay thế SERVICE với tên dịch vụ thực tế của bạn.

truy cập log với Docker

Ghi nhật ký Docker

Hệ sinh thái Docker có thể trở nên phức tạp hơn đối với các ứng dụng hội tụ, đặc biệt là trong các môi trường lớn. Như chúng ta đã biết, mỗi container tạo ra log. Do đó, một cơ chế gọi là Logging Driver chịu trách nhiệm tiếp nhận, gửi và lưu trữ log. Theo mặc định, Docker sử dụng các tệp JSON cho Logging Driver, nhưng nó cũng hỗ trợ nhiều driver khác, mỗi driver có những ưu và nhược điểm riêng.

Tất cả mọi người đều công nhận rằng log rất quan trọng trong nhiều lĩnh vực, bao gồm khắc phục sự cố và tăng cường hiệu suất hệ thống. Dưới đây, chúng tôi sẽ đề cập đến hai khía cạnh chính của việc sử dụng log container:

  • Giám sát: Mục đích chính của logs là giám sát. Chúng thường cho thấy tình trạng tổng thể của các ứng dụng được containerize của chúng ta.
  • Khắc phục sự cố: Khi gặp sự cố, logs giúp chúng ta phát hiện lỗi ứng dụng.

Vì docker logs và docker compose logs được tạo liên tục, chúng có thể lấp đầy toàn bộ bộ nhớ VPS. Do đó, chúng ta cần một chiến lược quản lý không gian đĩa gọi là Log Rotation Policy. Để tạo và sử dụng chính sách này, quay lại docker-compose.yml và mở nó. Sau đó, thêm một phần logging với cấu hình dưới đây:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

Bạn có thể liên tục điều chỉnh max-sizemax-file theo nhu cầu của mình.

Mô Hình Phân Phối Docker Logs

Các kỹ sư có thể chọn một mô hình logging khác trong các môi trường nâng cao hơn so với các driver JSON mặc định, chẳng hạn như Syslog, fluentd, và các mô hình khác. Tuy nhiên, điều quan trọng là nhớ rằng driver JSON-file phù hợp cho hầu hết các kịch bản logging, và có thể không cần phải lệch khỏi chế độ mặc định.

Tùy thuộc vào kiến trúc ứng dụng hoặc yêu cầu của tổ chức, bạn có thể buộc phải sử dụng các giải pháp logging tập trung được gọi là Log Aggregators. Những dịch vụ này, bao gồm Elasticsearch, Logstash, Kibana, v.v., được thiết kế để nhận logs từ các nguồn khác nhau và hợp nhất, lưu trữ cũng như phân tích chúng ở một vị trí tập trung duy nhất.

Ngược lại, bạn nên lưu trữ logs của mình bằng các giải pháp lưu trữ tiết kiệm hơn. Xem xét tình huống trong đó VPS của bạn sử dụng bộ nhớ tốc độ cao và đắt tiền; sử dụng các tài nguyên cao cấp như vậy để lưu trữ logs mà bạn có thể chỉ cần dùng để tham khảo trong tương lai có thể không tiết kiệm.

Có rất nhiều mô hình logging khác nhau, mỗi mô hình có những ưu điểm và nhược điểm riêng. Điều cần thiết là đánh giá cẩn thận từng mô hình và chọn một mô hình dựa trên nhu cầu cụ thể của bạn.

Hosting Linux VPS

Lấy cho mình một Linux VPS loại tiết kiệm hoặc cao cấp để lưu trữ trang web hoặc máy tính để bàn từ xa, với giá rẻ nhất hiện có. VPS Chạy trên Linux KVM để tăng hiệu quả và hoạt động trên phần cứng mạnh mẽ với bộ nhớ NVMe SSD để tăng tốc độ.

Đọc thêm

Kết luận

Hiểu rõ logs của Docker Compose là chìa khóa. Chúng giúp quản lý và gỡ lỗi các ứng dụng Docker của bạn một cách hiệu quả. Học cách truy cập và giám sát các logs này sẽ cải thiện khả năng giải quyết vấn đề và tăng cường hiệu suất cũng như bảo mật ứng dụng. Dù là phát triển hay quản trị hệ thống, sử dụng logs của Docker Compose là điều cần thiết. Chúng đảm bảo quản lý container của bạn hiệu quả.

Câu hỏi thường gặp

Làm cách nào để lọc Docker Compose logs theo thời gian?

Docker Compose không cung cấp phương pháp trực tiếp để lọc logs theo thời gian. Tuy nhiên, bạn có thể lọc logs bằng cách chuyển chúng qua grep để so khớp mẫu. Ví dụ, bạn có thể sử dụng: docker-compose logs | grep "2023-04-06", thay thế "2023-04-06" bằng ngày hoặc mẫu thời gian cụ thể mà bạn đang tìm kiếm.

Làm cách nào để dừng các container được khởi động bằng Docker Compose?

Điều hướng đến thư mục chứa tệp docker-compose.yml và chạy lệnh docker-compose down.

Làm cách nào để xóa các tập tin log theo cách thủ công?

Thay vì cấu hình log rotation trong tệp docker-compose.yml, bạn có thể xóa thủ công các tệp Docker JSON log từ /var/lib/docker/containers/<container_id>/. Trước khi làm vậy, bạn nên xác định ID container Docker bằng docker ps -a.

Có thể theo dõi Docker logs theo thời gian thực được không? 

Có, bạn có thể. Để làm điều đó, bạn nên sử dụng lệnh docker logs cùng với tùy chọn -f hoặc --follow. Điều này sẽ theo dõi logs Docker cho bạn.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Một thùng chứa kim loại được bảo vệ bởi một mái vòm lưới neon màu xanh lam phát sáng, có tiêu đề bài viết và biểu tượng Cloudzy trên nền xanh sâu.
Công Cụ Phát Triển & DevOps

Những Lỗi Bảo Mật Hàng Đầu Của Docker Cần Tránh Năm 2026

Bạn có thể chạy Docker trong production trong nhiều tháng mà không gặp vấn đề rõ ràng nào. Container khởi động, ứng dụng phản hồi, không có gì bị hỏng. Sau đó một cổng bị mở hoặc một quyền cấu hình sai tạo ra

Rexa CyrusRexa Cyrus Thời gian đọc: 15 phút
Một cấu trúc khối xanh phát sáng 3D đại diện cho các container Docker, cùng với văn bản 'Portainer vs Yacht: Bạn Nên Chọn Giao Diện Docker Nào' và biểu tượng Cloudzy.
Công Cụ Phát Triển & DevOps

Portainer vs Yacht: Nên Chọn Docker UI Nào Năm 2026?

Quản lý container Docker qua CLI hoạt động tốt với các thiết lập đơn giản, nhưng nó không mở rộng tốt. Khi số lượng container tăng lên, việc theo dõi trạng thái, log và cập nhật thủ công trở nên lỗi

Rexa CyrusRexa Cyrus Đọc trong 13 phút
Công cụ Tích hợp Liên tục
Công Cụ Phát Triển & DevOps

Công cụ CI/CD Tốt Nhất để Tối ưu Hóa Quy Trình DevOps Của Bạn Năm 2026

Cảnh quan phát triển phần mềm đang tiến hóa nhanh hơn bao giờ hết. Và nếu bạn không muốn bị bỏ lại, hãy áp dụng các phương pháp DevOps và Agile

Ada LovegoodAda Lovegood 11 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.