รู้จักกับ Docker volume
Docker volume คืออะไร
Docker volume คือตัวที่ใช้สำหรับสร้าง persistent storage ที่ docker จะเก็บเอาไว้ (มองง่ายๆเป็นเหมือน disk จำลอง 1 ก้อน)
- จะใช้สำหรับการเชื่อม data ที่อยู่ใน Container ออกมาภายนอก
- โดยปกติ เคสของการ map data ใน Container ออกมาสู่ภายนอกจะมีอยู่ 2 เคส คือ
- map ด้วยการ mount storage จริงในเครื่อ
- map ด้วยการใช้ docker volume
ข้อดีของการใช้ docker volume คือ
- มันจะสามารถสร้าง persistent storage ขึ้นมาได้ทันทีโดยไม่ต้องหา path ภายนอกเครื่อง (ทำให้ไม่รบกวน path ภายในเครื่อง)
- รวมถึงตอนที่ลบ data สามารถใช้คำสั่ง
docker volume
ในการจัดการได้เลย (เดี๋ยวจะมีการแนะนำเพิ่มเติม)
คำถามคือ แล้วเคสไหนจำเป็นต้อง map data เก็บไว้ คำตอบก็คือ
- เคสที่ต้องมีการเก็บข้อมูลจากฝั่ง user เช่น database ในที่นี่ก็คือ mysql (db) = เราจะเรียก container พวกนี้ว่าเป็นแบบ
stateful
คือ container ที่จะสามารถเปลี่ยนแปลงตาม data ที่เข้ามาได้ - ถ้าเคสที่ไม่มี state ใดๆ (คือ user ไม่สามารถเปลี่ยนแปลงข้อมูลอะไรใน container ได้) = เราจะเรียก container พวกนี้ว่าเป็นแบบ
stateless
คือ container ที่ไม่สามารถเปลี่ยนแปลงตาม data ได้ (state จะเหมือนเดิมเสมอ ไม่เปลี่ยนแปลง)
เราจะมาลองทำ mysql แบบทั้ง 2 เคสกัน