承接上文k8s自動化運維七
Docker文件簡介
裡面都是容器,每啟動一個容器便會在這裡記錄
進到某一個容器目錄中,可以看到容器的日志文件
如果文件比較大的話,就可以清空該文件
cat /dev/null > xxx-json.log
默認裡面隻有一個overlay2目錄,存儲鏡像管理數據的目錄,以使用的存儲驅動命名,這是Centos系統,使用的驅動為overlay2。
1、/var/lib/docker/image/overlay2/distribution
從遠端拉到本地的鏡像相關元數據
2、/var/lib/docker/image/overlay2/imagedb
鏡像數據庫
3、/var/lib/docker/image/overlay2/imagedb/content
每一個鏡像都會配置digest,也就是鏡像ID。Content目錄裡會看到一個sha256的目錄,進入到該目錄下,看到都是以鏡像ID命名的文件,docker images看到的鏡像ID的前12位就來自這個文件。
4、/var/lib/docker/image/overlay2/layerdb
5、/var/lib/docker/image/overlay2/layerdb/mounts
每啟動一個容器,該目錄都會将容器的container ID記錄下來,當容器被停止了,container ID依舊存在,當容器被删除了,container ID才會被清除。
6、/var/lib/docker/image/overlay2/layerdb/sha256
隻記錄鏡像的信息,不記錄容器的信息,當鏡像有添加或删除時,此目錄的信息會有更新
7、/var/lib/docker/image/overlay2/repositories.json
記錄了鏡像的tag、鏡像ID等信息
docker的網關、容器的IP地址等信息
網關和網絡的名稱均與上面的配置文件裡一緻,可見上面的network目錄就是記載着docker的網絡信息。
Docker存儲驅動,常見的有overlay、overlay2、aufs
每啟動一個容器就會有一個docker存儲挂載,如上所示,他們是共用宿主機的存儲,也就是這些docker存儲的挂載除了挂載點不一樣其他的都一樣。所有容器都共用一個存儲,當一個容器有數據變化,那麼連接容器的所有存儲的挂載信息都會更新産生變化。
可通過執行docker system prune 命令可用于清理磁盤,删除關閉的容器、無用的數據卷和網絡,以及dangling鏡像(即無tag的鏡像)
查看磁盤使用情況
磁盤馬上滿了,
這樣一層一層查看
du -sh /var/lib/docker/* |sort -rn | head
就可以定位到這2個文件夾比較大
查看volumes文件
# 查看該目錄下前N個大文件
du -am ./* | sort -nrk 1 | head -n 20
最終定位到./diff/app/logs/這個目錄下的文件比較大
這個文件下是應用的日志目錄,對應到pod容器裡面的這些日志
然後把大的日志文件清空即可
# 這種方式把日志文件清空,不會影響docker的正常運行
cat /dev/null > xibaoxiao-bwy_info.log
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep "c1dc42ba3167ece0894405870176847e912afd9151a0adb77691ac51663b942f"
2、知道了是哪個容器之後,進入到該容器目錄,其中若有容器日志大文件,清空即可
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!