Docker是目前非常流行的容器化技術,通過使用Docker,可以在一臺主機上運行多個獨立的應用程序,而且每個應用程序運行在各自的容器中,彼此獨立互不影響。但是,隨著時間的推移,Docker容器的日志會越來越大,占用越來越多的磁盤空間。本文將介紹如何通過Docker提供的命令刪除日志文件,以釋放磁盤空間。
# syntax: docker logs --since [timestamp] [container name or ID] # 刪除某個時間戳之前的日志文件,例如刪除7天前的日志 docker container ls --format "{{.ID}} {{.Names}}" | while read line do containerId=$(echo "$line" | cut -d ' ' -f 1) containerName=$(echo "$line" | cut -d ' ' -f 2) # 每個容器刪除7天前的log docker logs --since $(date +%s -d '7 days ago') "$containerName" >/dev/null \ && docker logs --since $(date +%s -d '7 days ago') "$containerName" | gzip >"$containerId.gz.log" \ && docker logs --since $(date +%s -d '7 days ago') "$containerName" >/dev/null \ && docker exec $containerName sh -c "find /var/lib/docker/containers/ -type f -name *-json.log -delete" done
以上的代碼是刪除7天前的容器日志,將日志文件壓縮為gz格式,然后再通過Docker命令刪除容器中的log文件。值得注意的是,這段代碼需要在root權限下運行。
總之,刪除Docker容器的日志文件是非常必要的,可以釋放磁盤空間并提高應用程序的性能。通過Docker提供的命令,我們可以很容易地刪除指定時間段內的日志文件,保持容器的穩定運行。
上一篇vue laydate
下一篇vue layer組件