파이문

도커 컨테이너 로그 삭제 본문

TIL

도커 컨테이너 로그 삭제

민Z 2021. 2. 18. 01:37

docker container log가 계속 쌓여서 disk full 이 났다. 그래서 도커 컨테이너 내부 로그를 삭제 해야 했다.

스크립트로 만들기

도커 컨테이너 로그를 삭제하는 script를 만들었었다.

스크립트 예시

#!/bin/sh

CONTAINER=$1

LOG=$(docker inspect --format='{{.LogPath}}' "$CONTAINER")
echo "LogPath:" $LOG

echo "Ary you sure clear the all $CONTAINER logs? [y|n]"
read answer

if [[ $answer == "y" ]]; then
        echo "Clear Logs!"
        truncate -s 0 "$LOG"
fi
echo "Done"

인자 값에는 container id 를 넣어도 되고 container name 을 넣어도 된다.

 

실행은 아래 처럼 할 수 있다.

$ sudo ./<script-name>.sh <container_name>

crontab 에 추가하면 주기적으로 삭제도 가능 (대신 입력 y 를 받게 했기 때문에 crontab 에 추가할 때는 옵션을 줘야함)

바로 삭제하기

아니면 컨테이너 아이디 찾아서 바로 삭제도 가능

$ sudo sh -c "truncate -s 0 /var/lib/docker/containers/<cotainer-id>/<container-id>-json.log"

TMI

근데 사실 로그 파일을  컨테이너 외부에 쌓고 있었기 때문에, 내부에는 쌓일 필요가 없었고 쌓이면 안되었었음

알고보니까 로그를 console 로 찍고 있었던 것이었다. 데헷

 

그래서 표준 출력 안되게 바꾸고 위의 스크립트도 삭제했다는 그런 TMI

참고

stackoverflow.com/questions/42510002/how-to-clear-the-logs-properly-for-a-docker-container

Comments