mac清除docker日志

查看日志路径,当然这个路径正常是无法在宿主机访问的,只能进到docker vm 中才能去找到

$ docker inspect pdf.kfsafe.cn |grep LogPath
        "LogPath": "/var/lib/docker/containers/875c4ef5eb20a2544b5896e1113068716cba92994c59ef77979885555c29a5d5/875c4ef5eb20a2544b5896e1113068716cba92994c59ef77979885555c29a5d5-json.log",

网上很多都是screen进入Docker for Mac VM

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

但是当前我的mac 无法找到,不知道是什么问题?,有知道的大哥麻烦留个言,谢谢。

$ ll ~/Library/Containers/com.docker.docker/Data/vms/0/tty                                               
ls: cannot access '/Users/cenhuqing/Library/Containers/com.docker.docker/Data/vms/0/tty': No such file or directory

所以此路不通,只能找到下面这个方法

### 这个是删除所有的日志,需要重启docker
$ echo "rm /var/lib/docker/containers/*/*.log" | nc -U -w 0 ~/Library/Containers/com.docker.docker/Data/debug-shell.sock

下面个脚本方法可以删除对应容器的日志

# 此脚本放入到家目录下的~/.zshrc中
clearDockerLog(){
    echo "start clear docker log ..."
    dockerLogFile=$(docker inspect $1 | grep -G '\"LogPath\": \"*\"' | sed -e 's/.*\"LogPath\": \"//g' | sed -e 's/\",//g')
    echo "will clear log path ===>${dockerLogFile} "
    echo "rm ${dockerLogFile}" | nc -U -w 0 ~/Library/Containers/com.docker.docker/Data/debug-shell.sock
    # 重启服务
    if [[ $? -eq 0 ]];then
        docker restart $1
    fi

}

执行结果

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
33
粉丝
5
喜欢
68
收藏
97
排名:472
访问:1.7 万
私信
所有博文
社区赞助商