AskClean

Docker กินพื้นที่บน Mac? วิธีเรียกคืนพื้นที่อย่างปลอดภัย

ทีม AskClean · อัปเดตเมื่อ 2026-11-02

รัน docker system df -v ในเทอร์มินัลเพื่อดูว่า image, container ที่หยุดแล้ว, build cache หรือ volume กินพื้นที่ของ Docker อยู่ ล้างหมวดที่ตรวจพบว่าเป็นสาเหตุก่อน เก็บ named volume ไว้จนกว่าจะสำรองข้อมูลแล้ว และห้ามลบหรือย้าย Docker.raw ด้วย Finder เอง

ภาพไอโซเมตริกของพื้นที่ Docker ที่มีบล็อก container ชั้นของ image เศษแคช และ volume ข้อมูลที่มีโล่ป้องกัน
พื้นที่ของ Docker คือข้อมูลหลายหมวดที่อยู่รวมในดิสก์เสมือนเดียว ให้ตรวจแต่ละหมวดก่อน prune

ทำไม Docker บน macOS ดูใหญ่มาก

Docker Desktop รัน container ของ Linux ในเครื่องเสมือนขนาดเล็ก image, ชั้นข้อมูลที่เขียนได้ของ container, build cache และ volume ทั้งหมดอยู่ในไฟล์ดิสก์เสมือนไฟล์เดียว ซึ่งมักชื่อ Docker.raw ไม่ใช่โฟลเดอร์ธรรมดาที่ควรแก้ใน Finder ความจุสูงสุดของไฟล์ ขนาดที่ Finder แสดง และพื้นที่ที่ใช้จริงบนดิสก์อาจไม่เท่ากัน จึงควรเริ่มจากตัวเลขของ Docker เองและพื้นที่ว่างของ macOS การลบ Docker.raw ข้ามระบบจัดการของ Docker และอาจทำลาย image, container และ volume ทั้งหมดพร้อมกัน ส่วนการย้ายไฟล์ใน Finder อาจทำให้ Docker Desktop ใช้งานไม่ได้

ตรวจสอบก่อน prune

เปิด Docker Desktop แล้วรัน docker system df -v เพื่อดูการใช้พื้นที่แยกตามหมวด จากนั้นใช้ docker ps -a, docker image ls และ docker volume ls ระบุว่าแต่ละรายการเป็นของโปรเจกต์ใด ตัวเลข reclaimable ไม่ได้แปลว่าลบได้อย่างปลอดภัยเสมอ image หนึ่งอาจใช้ร่วมกันหลาย container และ volume ที่ไม่มี container ต่ออยู่อาจเก็บฐานข้อมูลสำเนาเดียวที่คุณยังต้องใช้ ดูขีดจำกัดการใช้ดิสก์และตำแหน่ง disk image ใน Docker Desktop Settings > Resources แล้วจดค่าเดิมไว้ก่อนเปลี่ยน

  1. รัน docker system df -v แล้วบันทึกผลพร้อมวันที่
  2. ใช้ docker ps -a, docker image ls และ docker volume ls จับคู่ container, image และ volume กับโปรเจกต์หรือเวิร์กโฟลว์ CI ที่ยังใช้
  3. ระบุเจ้าของและสถานะการสำรองของทุก volume ที่มีข้อมูล แล้วสำรอง volume ที่สำคัญ
  4. ล้างเฉพาะหมวดที่เป็นสาเหตุก่อน เช่น build cache หรือ container ที่หยุดแล้ว
  5. รัน docker system df -v ซ้ำ ตรวจว่าโปรเจกต์สำคัญยังเริ่มทำงานได้ แล้วดูพื้นที่ว่างของ macOS อีกครั้งหลังจาก Docker Desktop คืนพื้นที่ให้เครื่อง

volume ที่ไม่มี container ใดต่ออยู่ไม่ได้แปลว่าทิ้งได้ โปรเจกต์ Compose ฐานข้อมูลที่หยุดไว้ และงานกู้คืนข้อมูลแบบครั้งเดียวมักทิ้ง volume ที่ยังจำเป็นไว้โดยไม่ได้ต่อกับ container ใด

ใช้คำสั่งแบบเจาะจง

ลบ container หรือ image ที่รู้แน่ว่าไม่ใช้แล้วด้วย docker container rm และ docker image rm การลบ container ที่หยุดแล้วจะทิ้งการเปลี่ยนแปลงในชั้นที่เขียนได้ แต่ไม่ลบ named volume ใช้ docker builder prune กับ build cache ที่สร้างใหม่จาก Dockerfile ได้ แลกกับบิลด์ครั้งหน้าที่ช้าลง docker system prune รวมหลายหมวดไว้ในคำสั่งเดียว ค่าเริ่มต้นลบ container ที่หยุดแล้ว, เครือข่ายที่ไม่ได้ใช้, image แบบ dangling และ build cache ที่ไม่ได้ใช้ ตัวเลือก -a ขยายไปยังทุก image ที่ไม่มี container ใช้ ส่วน --volumes เพิ่ม anonymous volume ซึ่งอาจมีข้อมูลจริง อ่านสรุปก่อนยืนยันทุกครั้ง

ปกป้อง volume และดิสก์เสมือน

volume ออกแบบมาให้อยู่นานกว่า container จึงอาจเก็บข้อมูลชุดเดียวที่มีในเครื่อง ให้ถือเป็นเอกสาร ไม่ใช่แคช สำรองฐานข้อมูลด้วยเครื่องมือ export ของฐานข้อมูลนั้นหรือวิธีสำรอง volume ที่ทดสอบแล้ว การคัดลอกโฟลเดอร์จาก volume ของฐานข้อมูลที่กำลังทำงานไม่ได้ให้สำเนาที่สมบูรณ์เสมอไป หากต้องลดขนาดหรือย้ายดิสก์เสมือน ให้ทำผ่าน Docker Desktop Settings ไม่ใช่ Finder และสำรอง volume ก่อน reset หรือถอนการติดตั้ง AskClean แสดงพื้นที่ที่ Docker ใช้บน Mac แต่จะไม่เลือก Docker.raw, ข้อมูลรับรอง, image หรือ volume ไว้ล้างเหมือนแคชทั่วไป ให้ใช้ CLI และ Settings ของ Docker จัดการข้อมูลเหล่านี้

สรุปการตัดสินใจและขอบเขตความปลอดภัย

ตรวจว่า Docker Desktop ใช้พื้นที่บน Mac ไปกับอะไร ล้าง container ที่หยุดแล้ว image และ build cache อย่างปลอดภัย พร้อมปกป้อง volume และดิสก์เสมือน Docker.raw

การตัดสินใจตรวจสอบได้ที่ขอบเขตความปลอดภัย
ทำไม Docker บน macOS ดูใหญ่มากDocker.raw / Docker Desktop SettingsDocker Desktop รัน container ของ Linux ในเครื่องเสมือนขนาดเล็ก image, ชั้นข้อมูลที่เขียนได้ของ container, build cache และ volume ทั้งหมดอยู่ในไฟล์ดิสก์เสมือนไฟล์เดียว ซึ่งมักชื่อ Docker.raw ไม่ใช่โฟลเดอร์ธรรมดาที่ควรแก้ใน Finder ความจุสูงสุดของไฟล์ ขนาดที่ Finder แสดง และพื้นที่ที่ใช้จริงบนดิสก์อาจไม่เท่ากัน จึงควรเริ่มจากตัวเลขของ Docker เองและพื้นที่ว่างของ macOS การลบ Docker.raw ข้ามระบบจัดการของ Docker และอาจทำลาย image, container และ volume ทั้งหมดพร้อมกัน ส่วนการย้ายไฟล์ใน Finder อาจทำให้ Docker Desktop ใช้งานไม่ได้
ตรวจสอบก่อน prunedocker system df -v / docker ps -a / docker volume lsเปิด Docker Desktop แล้วรัน docker system df -v เพื่อดูการใช้พื้นที่แยกตามหมวด จากนั้นใช้ docker ps -a, docker image ls และ docker volume ls ระบุว่าแต่ละรายการเป็นของโปรเจกต์ใด ตัวเลข reclaimable ไม่ได้แปลว่าลบได้อย่างปลอดภัยเสมอ image หนึ่งอาจใช้ร่วมกันหลาย container และ volume ที่ไม่มี container ต่ออยู่อาจเก็บฐานข้อมูลสำเนาเดียวที่คุณยังต้องใช้ ดูขีดจำกัดการใช้ดิสก์และตำแหน่ง disk image ใน Docker Desktop Settings > Resources แล้วจดค่าเดิมไว้ก่อนเปลี่ยน
ใช้คำสั่งแบบเจาะจงdocker container rm / image rm / builder prune / system pruneลบ container หรือ image ที่รู้แน่ว่าไม่ใช้แล้วด้วย docker container rm และ docker image rm การลบ container ที่หยุดแล้วจะทิ้งการเปลี่ยนแปลงในชั้นที่เขียนได้ แต่ไม่ลบ named volume ใช้ docker builder prune กับ build cache ที่สร้างใหม่จาก Dockerfile ได้ แลกกับบิลด์ครั้งหน้าที่ช้าลง docker system prune รวมหลายหมวดไว้ในคำสั่งเดียว ค่าเริ่มต้นลบ container ที่หยุดแล้ว, เครือข่ายที่ไม่ได้ใช้, image แบบ dangling และ build cache ที่ไม่ได้ใช้ ตัวเลือก -a ขยายไปยังทุก image ที่ไม่มี container ใช้ ส่วน --volumes เพิ่ม anonymous volume ซึ่งอาจมีข้อมูลจริง อ่านสรุปก่อนยืนยันทุกครั้ง
ปกป้อง volume และดิสก์เสมือนvolume / Docker Desktop Settingsvolume ออกแบบมาให้อยู่นานกว่า container จึงอาจเก็บข้อมูลชุดเดียวที่มีในเครื่อง ให้ถือเป็นเอกสาร ไม่ใช่แคช สำรองฐานข้อมูลด้วยเครื่องมือ export ของฐานข้อมูลนั้นหรือวิธีสำรอง volume ที่ทดสอบแล้ว การคัดลอกโฟลเดอร์จาก volume ของฐานข้อมูลที่กำลังทำงานไม่ได้ให้สำเนาที่สมบูรณ์เสมอไป หากต้องลดขนาดหรือย้ายดิสก์เสมือน ให้ทำผ่าน Docker Desktop Settings ไม่ใช่ Finder และสำรอง volume ก่อน reset หรือถอนการติดตั้ง AskClean แสดงพื้นที่ที่ Docker ใช้บน Mac แต่จะไม่เลือก Docker.raw, ข้อมูลรับรอง, image หรือ volume ไว้ล้างเหมือนแคชทั่วไป ให้ใช้ CLI และ Settings ของ Docker จัดการข้อมูลเหล่านี้

คำถามที่พบบ่อย

ทำไม Docker.raw ใหญ่มาก?

เพราะเป็นดิสก์เสมือนที่เก็บ image, container, cache และ volume ฝั่ง Linux ของ Docker Desktop ขนาดเชิงตรรกะหรือขนาดสูงสุดอาจต่างจากพื้นที่ที่ใช้จริง ให้ดู docker system df -v และ Docker Desktop Settings ก่อนลงมือ

docker system prune ลบ volume ไหม?

ค่าเริ่มต้นไม่ลบ แต่ตัวเลือก --volumes ขยายการล้างไปยัง anonymous volume แม้ volume ที่ดูเหมือนไม่ได้ใช้ก็อาจเก็บฐานข้อมูลสำคัญ ให้สำรองและระบุเจ้าของก่อนลบ

ลบ Docker.raw ใน Finder ได้ไหม?

ไม่ได้ อย่าลบหรือย้ายเอง เพราะอาจทำลายข้อมูล Docker ทั้งหมดในเครื่องหรือทำให้ Docker Desktop ใช้งานไม่ได้ ใช้ CLI ของ Docker จัดการ image และ container และใช้ Docker Desktop Settings จัดการดิสก์เสมือน

แหล่งอ้างอิง

จัดการพื้นที่ของเครื่องมือนักพัฒนาต่อ