清除/删除 Docker 日志

mgm*_*one 32 ubuntu logging docker

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

由于图像本身存储在单独的 1TB 卷上,因此图像本身应该不是问题。

一个候选者是 Docker 本身存储的集中式日志文件(某处的 json 文件?),有谁知道这些文件/文件位于/所在的位置,以及我们如何对它们进行日志旋转/截断?

小智 29

首先,我在客户端和服务器上都使用 docker 1.1.2,随着 docker 的快速发展,这个答案对于较新版本的 docker 来说可能已经过时了。

文件的位置

找到您的 docker 目录。在使用 apt/debian 风格系统的系统上,由 docker 存储库安装的包https://get.docker.com/ubuntu使用/var/lib/docker. 该目录可能位于其他系统上的同一位置(无法确认)。

在下面containers/**CONTAINER_ID**你会找到关于容器的信息。在该文件**CONTAINER_ID**-json.log夹中的文件中,您将找到一个包含该容器所有日志的文件。它可能看起来像一个 json 文件,但它不是。这是一个 json 结构的流,每行一个,每个包含一个日志行(每行以 a 结尾,}下一行以 a开头{,因此它不是一个有效的 json 整体)。

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

编辑/更改该文件

我建议您使用该路径来查看是否是空间不足的原因,但不要记录旋转它们。

我宁愿确保容器不会记录太多行(通过在 dockerfile 中使用 CMD 将您处理的输出重定向到卷中的文件或 /dev/null - 使用配置启用日志 - 和然后我会用另一个容器对日志文件进行 logrotate)

  • `docker inspect --format='{{.LogPath}}' $INSTANCE_ID` (8认同)
  • `docker inspect` 是你的朋友。 (2认同)

小智 26

这是一个简单的单行清理容器日志文件:

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

  • 对于 mac 用户,您必须以 root 身份在 docker-machine 上运行它:`docker-machine ssh default "echo '' | sudo tee $(docker inspect --format='{{.LogPath}}' &lt;container_name_or_id &gt;)"` (2认同)

小智 10

如果你运行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)
Run Code Online (Sandbox Code Playgroud)

这些是属于已删除容器的日志。关闭这些的一种方法是重新启动 docker 守护进程本身。这并不总是可行的。

释放此空间的另一种方法是找到相关的文件描述符并截断它:

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)
Run Code Online (Sandbox Code Playgroud)

17511docker 的 pid在哪里,并且e49d81fc是违规日志文件名/容器 ID 的一部分。在这里,fd 是 /proc/17511/fd/25,所以我们截断它:

cat /dev/null > /proc/17511/fd/25
Run Code Online (Sandbox Code Playgroud)


NZD*_*NZD 9

我正在使用 Docker 版本 1.13.0,构建 49bf474

如果您使用默认日志格式json-file,则可以指定轮换日志的选项。

您可以设置 docker 守护程序来执行此操作或为每个容器进行设置。

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

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

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "2m",
        "max-file": "5",
    }
}
Run Code Online (Sandbox Code Playgroud)

Docker 运行:

docker run -it --log-driver json-file --log-opt max-size=2m,max-file=5 alpine ash
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅日志记录dockerd 配置