ข้ามไปยังเนื้อหา
กลับหน้ารายการบทความ

Docker Volume เก็บข้อมูลถาวรของคอนเทนเนอร์

Volume เป็นพื้นที่เก็บข้อมูลที่ Docker ดูแลแยกจากชั้นไฟล์ของคอนเทนเนอร์ อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Docker Volume เก็บข้อมูลถาวรของคอนเทนเนอร์

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

ภาพรวม

Docker แยกแอปและ dependency ไว้ในคอนเทนเนอร์ การใช้งานจริงต้องดูทั้งอิมเมจ สิทธิ์ เครือข่าย และข้อมูลที่ต้องอยู่ต่อหลังคอนเทนเนอร์ถูกแทนที่

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Volume เป็นพื้นที่เก็บข้อมูลที่ Docker ดูแลแยกจากชั้นไฟล์ของคอนเทนเนอร์ จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

คอนเทนเนอร์ mount Volume เข้าไปใช้งาน ข้อมูลจึงอยู่ต่อเมื่อคอนเทนเนอร์ถูกลบและสร้างใหม่

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับฐานข้อมูล ไฟล์อัปโหลด และข้อมูลแอปที่ต้องคงอยู่ระหว่างการอัปเดตอิมเมจ

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. ตรวจอิมเมจและ Compose configuration ที่จะใช้จริง
  2. ทดสอบการสร้างคอนเทนเนอร์ใหม่ รวมถึง mount, network และ healthcheck
  3. บันทึกวิธีย้อนเวอร์ชันอิมเมจและกู้ข้อมูลจาก Volume

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

Volume ยังต้องมีแผน backup และการกำหนดสิทธิ์ไฟล์ให้ตรงกับผู้ใช้ในคอนเทนเนอร์

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

Volume เป็นพื้นที่เก็บข้อมูลที่ Docker ดูแลแยกจากชั้นไฟล์ของคอนเทนเนอร์ เหมาะกับฐานข้อมูล ไฟล์อัปโหลด และข้อมูลแอปที่ต้องคงอยู่ระหว่างการอัปเดตอิมเมจ ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Docker