Docker 容器日志不滚动

Docker 容器日志不滚动

我使用 log-rotation 运行我的 docker 容器:

Docker: Docker version 17.03.1-ce, build 7392c3b/17.03.1-ce
Platform: Linux version 4.9.32-15.41.amzn1.x86_64 (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) 

docker inspect

"HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "4",
                    "max-size": "250m"
                }
            },

但我的容器日志仍然大得多:

 rw-r--r-- 1 root root  17M Nov 21 17:54 ServiceBackend-24f1d4f56ab0-stdouterr.log
-rw-r--r-- 1 root root 1.4G Nov 22 09:59 ServiceBackend-3289df17fc6c-stdouterr.log
-rw-r--r-- 1 root root  18K Nov 21 17:18 ServiceBackend-3dd32dd72e4c-stdouterr.log
-rw-r--r-- 1 root root  67M Nov 21 18:05 ServiceBackend-43bafc60b140-stdouterr.log
-rw-r--r-- 1 root root 499M Nov 21 17:05 ServiceBackend-6afbcf5dcb0a-stdouterr.log
-rw-r--r-- 1 root root 129M Nov 21 17:53 ServiceBackend-c76ee4033c5a-stdouterr.log
-rw-r--r-- 1 root root 731M Nov 21 17:51 ServiceBackend-d11ddbded99c-stdouterr.log
-rw-r--r-- 1 root root 137M Nov 21 17:56 ServiceBackend-d66851d8ebf8-stdouterr.log

我如何解决它?

答案1

您正在查看的日志是由 docker 的 json 日志记录驱动程序以外的其他程序生成的,因此不由 docker 的日志轮换选项维护。/var/log/containers 目录不是常规 docker CE 安装的一部分。Docker 轮换 json 日志/var/lib/docker/containers/*/*-json.log*。使用以下测试:

$ docker run -it --rm --log-opt max-file=3 --log-opt max-size=1k debian /bin/bash
root@e6300962b9ff:/# i=0      
root@e6300962b9ff:/# while [ $i -lt 1000 ]; do
>   echo "i is currently set to $i ....................................................................."
>   i=$(expr $i + 1)
> done
... (lots of output generated)

我可以在另一个窗口中看到以下内容(以 root 身份运行,因为 /var/lib/docker 已被锁定):

# ls -al /var/lib/docker/containers/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75/*-json.log*
-rw-r----- 1 root root  336 Nov 22 09:49 /var/lib/docker/containers/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75-json.log
-rw-r----- 1 root root 1007 Nov 22 09:49 /var/lib/docker/containers/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75-json.log.1
-rw-r----- 1 root root 1006 Nov 22 09:49 /var/lib/docker/containers/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75/e6300962b9ffc21d5c8fec64a25ae2d66df0f8f36f69c7c5a674ec9aca697a75-json.log.2

您需要为正在查看的日志设置不同的日志文件轮换,或者重新考虑是否真的需要它们并禁用创建它们的任何内容。

相关内容