我想摆脱我的docker环境中巨大的容器日志文件。
在Mac上运行原生Docker时,我无法找到它们。我没有使用docker-machine (virtualbox)的东西。我的docker版本是1.13.1。
当我这样做的时候
docker inspect <container-name>我看有
"LogPath": "/var/lib/docker/containers/<container-id>/<container-id>-json.log但是在我的mac (主机)上甚至没有/var/lib/docker目录。
我也查过了
~/Library/Containers/com.docker.docker/但在那里没有发现任何容器特定的日志。
我可以使用tail,但它对我来说并不总是那么方便。
所以问题是,我如何在我的本地Docker Mac环境中清除我的容器的日志文件。
发布于 2018-02-15 23:20:32
我将以下内容添加到我的bash_profile中。它获取docker容器的日志路径,打开docker机器的屏幕并删除日志文件。
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
}使用方法如下:
clearDockerLog <container_name>发布于 2020-03-31 23:43:13
这是唯一适用于macOS 10.14的解决方案
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
希望这能有所帮助
发布于 2022-01-21 11:06:52
这将删除macOS中的所有docker日志。
echo "rm /var/lib/docker/containers/*/*.log" | nc -U -w 0 ~/Library/Containers/com.docker.docker/Data/debug-shell.sockhttps://stackoverflow.com/questions/42527291
复制相似问题