我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
当前回答
你也可以在docker运行命令行上提供log-opts参数,如下所示:
docker run --log-opt max-size=10m --log-opt max-file=5 my-app:latest
或者是码头式的。Yml是这样的
my-app:
image: my-app:latest
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
致谢:https://medium.com/@Quigley_Ja/ roting-docker -logs-keeping-your-overlay-folder-small-40cfa2155412 (James Quigley)
其他回答
sudo sh -c "truncate -s 0 /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系统修剪 在命令提示符下执行该命令
Linux / Ubuntu:
如果您有多个容器,而您只想删除一个日志,而不想删除其他日志。
(如果你有类似“权限被拒绝”的问题,请先sudo su。) 列出所有容器:docker ps -a 寻找您想要的容器并复制container ID。例子:E1X2A3M4P5L6。 容器文件夹和真实名称比E1X2A3M4P5L6长,但前12个字符是docker ps -a中产生的。 只删除日志: > /var/lib/docker/containers/E1X2A3M4P5L6*/E1X2A3M4P5L6*-json.log(替换E1X2A3M4P5L6为您的结果!!)
正如您所看到的,在/containers内部是容器,logs具有相同的名称,但在结尾使用-json.log。你只需要知道前12个字符,因为*意味着“任何东西”。
你也可以在docker运行命令行上提供log-opts参数,如下所示:
docker run --log-opt max-size=10m --log-opt max-file=5 my-app:latest
或者是码头式的。Yml是这样的
my-app:
image: my-app:latest
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
致谢:https://medium.com/@Quigley_Ja/ roting-docker -logs-keeping-your-overlay-folder-small-40cfa2155412 (James Quigley)