我们使用默认 docker 配置来构建服务,有时主机会出现磁盘空间占满,那很可能是 docker 容器的日志所导致的,容器日志一般存放在 /var/lib/docker/containers/container_id/ 下面, 以 json.log 结尾

查看容器日志大小

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

清理容器日志

truncate -s 0 /var/lib/docker/containers/*/*-json.log

为了不再出现日志磁盘占满,就需要从源头上限制日志大小,那么可以直接修改 daemon.json 全局来配置

{
  + "log-driver": "json-file",
  + "log-opts": { "max-size": "500m", "max-file": "3" }
}

重启 docker 服务

systemctl daemon-reload
systemctl restart docker

如果使用 docker-compose 也可以专门为某个容器配置日志

emqx:
  image: emqx/emqx
  restart: always
  environment:
    EMQX_NAME: emqx
    EMQX_ALLOW_ANONYMOUS: "false"
    EMQX_LISTENER__TCP__EXTERNAL: 1883
    EMQX_LISTENER__WS__EXTERNAL: 8083
  logging:
    driver: json-file
    options:
      max-size: 1g
  ports:
    - 1883:1883
    - 8081:8081