首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上清除本机Docker中的日志

问在Mac上清除本机Docker中的日志
EN

Stack Overflow用户
提问于 2017-03-01 16:58:16
回答 4查看 7.5K关注 0票数 10

我想摆脱我的docker环境中巨大的容器日志文件。

在Mac上运行原生Docker时,我无法找到它们。我没有使用docker-machine (virtualbox)的东西。我的docker版本是1.13.1。

当我这样做的时候

代码语言:javascript
复制
docker inspect <container-name>

我看有

代码语言:javascript
复制
"LogPath": "/var/lib/docker/containers/<container-id>/<container-id>-json.log

但是在我的mac (主机)上甚至没有/var/lib/docker目录。

我也查过了

代码语言:javascript
复制
~/Library/Containers/com.docker.docker/

但在那里没有发现任何容器特定的日志。

我可以使用tail,但它对我来说并不总是那么方便。

所以问题是,我如何在我的本地Docker Mac环境中清除我的容器的日志文件。

EN

回答 4

Stack Overflow用户

发布于 2018-02-15 23:20:32

我将以下内容添加到我的bash_profile中。它获取docker容器的日志路径,打开docker机器的屏幕并删除日志文件。

代码语言:javascript
复制
clearDockerLog(){
dockerLogFile=$(docker inspect $1 | grep -G '\"LogPath\": \"*\"' | sed -e 's/.*\"LogPath\": \"//g' | sed -e 's/\",//g')
rmCommand="rm $dockerLogFile"
screen -d -m -S dockerlogdelete ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
screen -S dockerlogdelete -p 0 -X stuff $"$rmCommand"
screen -S dockerlogdelete -p 0 -X stuff $'\n'
screen -S dockerlogdelete -X quit
}

使用方法如下:

代码语言:javascript
复制
clearDockerLog <container_name>
票数 16
EN

Stack Overflow用户

发布于 2020-03-31 23:43:13

这是唯一适用于macOS 10.14的解决方案

代码语言:javascript
复制
docker run -it --rm --privileged --pid=host NAME nsenter -t 1 -m -u -n -i -- sh -c 'truncate -s0 /var/lib/docker/containers/*/*-json.log'

用您的容器名称替换NAME

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2022-01-21 11:06:52

这将删除macOS中的所有docker日志。

代码语言:javascript
复制
echo "rm /var/lib/docker/containers/*/*.log" | nc -U -w 0 ~/Library/Containers/com.docker.docker/Data/debug-shell.sock
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42527291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档