1. 程式人生 > >Docker啟動出現"No space left on device" 或者 docker日誌太多導致磁盤占滿問題

Docker啟動出現"No space left on device" 或者 docker日誌太多導致磁盤占滿問題

col null 升序 html aec ice brush 清理 doc

機房有一臺服務器上面部署了多個docker容器, 並且每個docker容器都往stderr中源源不斷的輸出日誌,導致磁盤被占滿了。Docker容器在啟動/重啟的時候會往/var/lib/docker中寫數據,如果你在啟動docker容器遇到"No space left on device"的問題,可以按照下面的步驟進行清理相關的日誌操作。

1)對/var/lib/docker/containers下的文件夾進行排序,看看哪個容器占用了太多的磁盤空間

下面命令會按照升序的方式對於容器文件夾進行排序,並列出容器文件夾的大小:
[root@docker ~]# du -d1 -h /var/lib/docker/containers | sort -h
36K  /var/lib/docker/containers/4d91f92dd7604216f2e9e123572e9a80d7bbee3d8c8ce7be2ed241c572816fb
640K /var/lib/docker/containers/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa
40K  /var/lib/docker/containers/7cfdbc453b2f7109b52e974061754266e6cdc0ccaee62ab4a5887865113e1144
40K  /var/lib/docker/containers/84ee24989ad52383c6e99eaa4d236e600095aa7f855e81fbafe10416b75ceefb
40K  /var/lib/docker/containers/aeced3ef3e23df27e52f65743bb05448b46a2c660acc5b0aab12604e060779b4
40K  /var/lib/docker/containers/ebd1bd211a1b9d02bb39bfb80eec3d0960a5b25e18f54d7371781ec456e7a1e8
176K /var/lib/docker/containers/1fe0a241e5ce9726c547c68739793633f9dd906768a36fe80e8fb80373aa3bfb
17M  /var/lib/docker/containers/ac30e68d454b37d22b3964053a2b52ba043baa1add13556a09c0e3e05589104f
25M  /var/lib/docker/containers/872ca4e3d005594591ca2df0e832d36eef448981ab2820c69df4ff1399f8423e

2)選擇你要清理的容器進行清理

cat /dev/null > /var/lib/docker/containers/container_id/container_log_name

如下命令會清空對應的日誌,如:
[root@docker ~]# cat /dev/null > /var/lib/docker/containers/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa-json.log

3)限制docker容器日誌文件的大小

啟動容器時,可以通過參數設置日誌文件的大小、日誌文件的格式。
[root@docker ~]# docker run -it --log-opt max-size=10m --log-opt max-file=3 centos

==============docker日常運維中幾個常用小命令==============
列出所有的容器 ID
#docker ps -aq

停止所有的容器
# docker stop $(docker ps -aq)

刪除所有的容器
# docker rm $(docker ps -aq)

刪除所有的鏡像
# docker rmi $(docker images -q)

復制文件
# docker cp mycontainer:/opt/file.txt /data/html

Docker啟動出現"No space left on device" 或者 docker日誌太多導致磁盤占滿問題