清除/删除Docker日志

在GCE的docker实现上,我们在根文件系统上的空间不足。

由于图像本身存储在一个单独的1TB卷上,图像本身不应该成为问题。

一个候选人是Docker本身存储的集中式日志文件(json文件在哪里?),有没有人知道这些文件/文件位于哪里,以及我们如何logrotate / truncate它们?

首先,我在客户端和服务端都使用docker 1.1.2,因为docker的更新版本可能已经过时了,因为docker快速发展了。

文件的位置

find您的docker目录。 在使用apt / debian风格系统的系统上,docker仓库https://get.docker.com/ubuntu安装的软件包使用/var/lib/docker 。 有可能是目录在其他系统上的相同位置(无法确认)。

containers/**CONTAINER_ID**您将find有关集装箱的信息。 在该文件夹中的文件**CONTAINER_ID**-json.log中,您将find一个包含该容器所有日志的文件。 它可能看起来像一个JSON文件,它不是。 这是一个streamJSON结构,每行一个,每个包含一个日志行(每行结束一个}和下一个以{开始,因此它不是一个有效的JSON作为一个整体)。

示例位置: – /var/lib/docker/containers/05b6053c41a2130afd6fc3b158bda4e605b6053c41a2130afd6fc3b158bda4e6/05b6053c41a2130afd6fc3b158bda4e605b6053c41a2130afd6fc3b158bda4e6-json.log

编辑/更改该文件

我build议你使用这个path来看看它是不是空间不足的原因,但不要logging旋转它们。

我宁愿确保容器不会logging太多行(通过在dockerfile中使用CMD,将处理的输出redirect到卷中的文件或使用configuration启用日志到/ dev / null),以及然后,我会与另一个容器日志文件)

这里简单的一行来清理容器日志文件:

echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

如果你运行sudo lsof | grep '(deleted)' sudo lsof | grep '(deleted)' ,你可能会发现有很多被docker打开的被删除的容器日志文件

 docker 17511 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 2879 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 6191 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 8713 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 8726 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 9907 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 9918 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11093 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11096 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11110 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11885 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11890 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11973 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11976 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 11983 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 13105 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 16737 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17139 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17516 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17517 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17518 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17519 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17520 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17525 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17574 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17584 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17586 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17637 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17643 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17644 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17659 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17666 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17669 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17680 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17884 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 17895 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 21126 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 21474 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 21475 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 21519 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 21721 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 23829 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 23830 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 23833 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 24196 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 24197 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 26821 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 28597 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 28608 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 30305 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 30308 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 30594 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) docker 17511 30595 root 25r REG 202,1 105 456624 /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) 

这些是属于已删除容器的日志。 一种方法是closuresdocker守护进程。 这并不总是可行的。

另一种释放这个空间的方法是find相关的文件描述符并截断它:

 ls -lh /proc/17511/fd/ | grep e49d81fc lr-x------ 1 root root 64 Sep 8 08:06 25 -> /var/lib/docker/containers/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc/39ba30ffc0e218ee830576570222284a93ebb458eadf46933d2dd7afe49d81fc-json.log (deleted) 

其中1751117511的pid,而e49d81fc是冒犯logfilename / container id的一部分。 在这里,fd是/ proc / 17511 / fd / 25,所以我们截断它:

 cat /dev/null > /proc/17511/fd/25 

我正在使用Docker版本1.13.0,build立49bf474

如果您使用的是默认日志logging格式json-file ,那么您可以指定选项来旋转日志。

您可以设置docker守护程序来完成此操作,或者将其设置为每个容器。

例如,日志文件大小为2 MB,最大为5个日志文件:

Docker守护进程:创build文件/etc/docker/daemon.json

 { "log-driver": "json-file", "log-opts": { "max-size": "2m", "max-file": "5", } } 

Docker运行:

 docker run -it --log-driver json-file --log-opt max-size=2m,max-file=5 alpine ash 

有关详细信息,请参阅logging和dockerdconfiguration

一个迟到的答案,但在同一条船上的任何人都可能会更好的探索出口docker日志到合理的pipe理他们的地方的select。 logspout对于从所有docker容器收集日志并将它们发送到某个地方很有用。 如果您只是需要考虑这一点,那么将它们发送到主机的syslog守护进程可能是一个好方法,并且您可以使用通常的机制将它们安排到文件中并从那里进行旋转。 对于更大的多主机环境,您可能会考虑将产品发送到“ELK”堆栈。 即Elasticsearch,Logstash和Kibana。

要finddocker位置,您可以使用:

 docker info Containers: 16 Images: 45 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Dirs: 78 Execution Driver: native-0.2 Kernel Version: 3.16.0-31-generic Operating System: Ubuntu 14.10 WARNING: No swap limit support 

如果你想释放空间,你可以这样做:

 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e2977ed2f4c ekino/puppetlabs:12.04.5 "/bin/bash" 15 hours ago Exited (0) 15 hours ago stoic_jones ded5903df161 ekino/puppetlabs:12.04.5 "/bin/bash" 12 days ago Exited (0) 11 days ago boring_wilson 72a831b7e4ab a964750d8f91 "/bin/bash" 4 weeks ago Exited (127) 3 weeks ago hungry_meitner 79af8331bad9 a964750d8f91 "/bin/bash" 4 weeks ago Exited (0) 4 weeks ago tender_wilson d3d3ca34b4b2 1af3728b2912 "/bin/bash" 6 weeks ago Exited (0) 5 weeks ago distracted_shockley 

现在你可以删除一个容器:

 docker rm ac055c58ab19