1. 日志存储
Docker在运行时会生成日志,一般在/var/lib/docker/containers/
下,在该目录下会根据容器的ID建立文件夹,每个文件夹下存储每个容器的相关文件。其中包括日志。
2. 日志查看
docker logs -f CONTAINERID
使用该命令可以查看容器的实时日志且会动态更新。
3. 日志限制
vi /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m","max-file":"3"} #表示最多3个,日志文件大小为500M的
}
之后重启docker容器
systemctl daemon-reload
systemctl restart docker
4. 查看日志大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
5. 日志清理
docker容器运行时,使用rm的方式删除日志文件,是无用的,磁盘空间仍会被占用。
因为在Linux中,使用rm删除文件,只是从文件系统的目录结构上解除链接。如果有一个进程正在使用这个文件,进程将仍然可以读取该文件,磁盘空间也会一直被占用。
可以像处理tomcat的日志的方式对容器日志进行清空或切割。
clean_dockerlog.sh
#!/bin/sh
logs=`find /var/lib/docker/containers/ -name *-json.log`
for docker_log in $logs
do
echo " " > $docker_log
done