我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
当前回答
Docker为Mac用户,这里是解决方案:
查找日志文件路径: $ docker inspect | grep日志 SSH进入docker机器(假设名称是默认的,如果不是,运行docker-machine ls来查找): $ docker-machine SSH默认 更改为root用户(参考): $ sudo -i 删除日志文件内容: $ echo "" > log_file_path_from_step1 .
其他回答
这将删除所有容器的日志文件:
sudo find /var/lib/docker/containers/ -type f -name "*.log" -delete
我更喜欢这个(从上面的解决方案):
truncate -s 0 /var/lib/docker/containers/*/*-json.log
然而,我正在运行几个系统(Ubuntu 18。x Bionic为例),该路径不能正常工作。Docker是通过Snap安装的,所以到容器的路径更像:
truncate -s 0 /var/snap/docker/common/var-lib-docker/containers/*/*-json.log
要移除/清除docker容器日志,我们可以使用下面的命令
$(docker inspect container_id|grep "LogPath"|cut -d """ -f4) 或 $(docker inspect container_name|grep "LogPath"|cut -d """ -f4)
Docker为Mac用户,这里是解决方案:
查找日志文件路径: $ docker inspect | grep日志 SSH进入docker机器(假设名称是默认的,如果不是,运行docker-machine ls来查找): $ docker-machine SSH默认 更改为root用户(参考): $ sudo -i 删除日志文件内容: $ echo "" > log_file_path_from_step1 .
下面是一个清除docker容器日志的跨平台解决方案:
docker run --rm -v /var/lib/docker:/var/lib/docker alpine sh -c "echo '' > $(docker inspect --format='{{.LogPath}}' CONTAINER_NAME)"
将其粘贴到终端中,并将CONTAINER_NAME更改为所需的容器名称或id。