默认情况下,Docker 容器如果不被销毁的话,那么它的日志会一直保留。如果我们有一个连续运行一年的 NGINX 服务容器,那么它的日志文件就会非常大。
Docker 容器的日志都会挂在到 /var/lib/docker/containers/ 文件夹下,并且以下面的格式进行命名。
/var/lib/docker/containers/<container id>/<container id>-json.log有三种方式限制日志大小,默认情况是全局设置,这样设置的话会对所有容器进行应用。
#方式一
使用文本编辑器编辑 /etc/docker/daemon.json 文件,并在里面加上限制日志容量的相关参数。
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}修改完成之后,需要重启 Docker 服务。
sudo systemctl restart docker#方式二
如果我们的容器是通过 docker run 命令启动的,我们也可以添加相关参数进行限制。
docker run --log-opt max-size=10m --log-opt max-file=5 my-app:latest#方式三
如果你使用的是 Docker Compose 启动对应的容器,可以在 docker-compose.yaml 文件里面定义相应的参数。
version: '3'
services:
nginx:
container_name: nginx
image: nginx
restart: always
logging:
driver: "json-file"
options:
max-file: "5"
max-size: "10m"