เตาะแตะไปกับ Docker ตอนที่ 8 Cleanup Disk Space

การเรียนรู้ docker เราก็จะมีการทดสอบ pull image มา แล้ว run เป็น container รวมทั้งอาจมีการสร้างพื้นที่เก็บข้อมูลที่เรียกว่า volumes (ทั้งแบบ named volume และ anonymous volume) บ่อยครั้งเมื่อเราใช้คำสั่งตรวจสอบ เราจะพบว่ามีอะไรไม่รู้หลงเหลืออยู่กินเนื้อที่ไปเยอะ

ตรวจสอบรายการ container

$ docker ps -a

ลบ containers ที่ไม่ใช้งานแล้ว

$ docker ps --filter status=dead --filter status=exited --filter status=created -aq | xargs -r docker rm -v

หมายเหตุ คำสั่งด้านบนนี้จะลบ data containers ด้วย ถ้ามีการสร้าง container ชนิดเก็บ data โปรดตรวจสอบให้ดีนะ ปัจจุบัน data container นั้น deprecated (ไม่แนะนำให้ใช้งาน)

ตรวจสอบรายการ images

$ docker images

ลบ images ที่ไม่ใช้งานแล้ว

$ docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi

ตรวจสอบรายการ volumes

$ docker volumes ls

ลบ volume ที่ไม่ถูกใช้งานโดย container ใด ๆ เลย

$ docker volume ls -q -f dangling=true | xargs -r docker volume rm

หรือจะใช้อีกแบบ แต่ต้องติดตั้ง jq เพิ่มด้วย

$ sudo apt install jq
$ docker ps -aq | xargs docker inspect | jq -r '.[] | .Mounts | .[] | .Name | select(.)'

 

References: