Skip to content
An`s Weblog
Go back

Docker Logging

Mục tiêu bài học

1. Tạo container mẫu có log

docker container run -d \
  --name weather-app \
  -p 80:3000 \
  linuxacademycontent/weather-app

Node.js chạy ở cổng 3000 bên trong container.

2. Xem log container bằng lệnh logs

docker container logs weather-app
-> App listening on port 3000

Sau khi gửi request đến web (vd: truy cập IP → nhập “Dallas”), bạn sẽ thấy log được ghi lại:

City requested: Dallas
City requested: San Antonio
Invalid city error: not found

3. Ứng dụng gửi log ra đâu?

Ứng dụng viết theo Twelve-Factor App:

“Log là dòng sự kiện (event stream), được ghi không đệm (unbuffered) ra STDOUT hoặc STDERR”.

Trong Node.js:

console.log("Info")       // STDOUT
console.error("Error")    // STDERR

Trong Python:

import logging
logging.basicConfig(level=logging.INFO)
logging.info("Info message")

Trong Ruby:

require 'logger'
logger = Logger.new(STDOUT)
logger.info("Hello logs!")

Trong container Nginx:

access.log  ->  /dev/stdout
error.log   ->  /dev/stderr

💡 Đây là cách để app cũ vẫn ghi log ra file nhưng Docker vẫn đọc được.

5. Gỡ lỗi khi container khởi động lỗi

Tạo lỗi bằng ghost_blog không có MySQL:

docker container run -d --name ghost_blog ghost

Kiểm tra:

docker container ls -a
## ghost_blog exited with status code 1

Xem log lỗi:

docker container logs ghost_blog

Kết quả log lỗi:

Error: Cannot connect to database!

Tổng kết

Lệnh / Khái niệmMô tả
docker container logs <name>Xem log từ container (stdout/stderr)
console.log / errorIn log từ Node.js
logger / loggingIn log từ Ruby, Python
status code0: OK, 1: Lỗi
Symlink /dev/stdoutGửi log file ra ngoài container

Note:


Share this post:

Previous Post
Docker Hub
Next Post
Executing Container Commands