ลดขนาดไฟล์ log ของ docker

วันนี้เจอเคสหนึ่งหลังจากผมได้ทำการใช้งาน docker-compose กับงานลูกค้า แล้วเนื้อที่ของ HDD ดันเต็ม!!! ผมก็ งง ไปดิเต็มได้ไง สืบไปสืบมาเจอว่า docker มันทำการเขียนไฟล์ .json เป็น log เก็บไว้ใน /var/lib/docker/containers

ซึ่งมันทำให้ไฟล์มันโตไปเรื่อยๆ จนใช้เนื้อที่ไปจนหมด T.T

วิธีแก้ไข

ถ้าใครใช้ docker สร้าง app ขึ้นมาให้เพิ่มแบบนี้เข้าไป

$ docker run --log-opt max-size=10m --log-opt max-file=5 my-app:latest

max-size=10m เราสามารถกำหนดขนาดที่ต้องการได้ในส่วนนี้

ถ้าใครใช้ docker-compose ให้กำหนดแบบนี้

my-app:
    image: my-app:latest
    logging:
        driver: "json-file"
        options:
            max-file: 5
            max-size: 10m

สงสัยเพิ่มเติมอ่านได้จาก https://docs.docker.com/config/containers/logging/configure/#configure-the-logging-driver-for-a-container