Site icon PlusMagi's Blog By Pitt Phunsanit

Docker: container restart policy

Docker container จะมี restart policy ให้ใช้อยู่ในการ restart container ใหม่ ถ้า Crash, restart, Manual stop, daemon restart


restart policy

PolicyCrash → restart?Daemon restart → restart?Manual stop แล้ว daemon restart → restart?เหมาะกับ
no (default)ไม่ไม่ไม่ทดสอบ, dev ชั่วคราว
on-failureเฉพาะ exit ≠ 0ไม่ไม่งานที่ crash = ปัญหาจริง
alwaysใช่ทุกกรณีใช่ใช่ (แม้ stop ด้วยมือก็ restart ตาม)บริการต้อง up เสมอ ไม่สนใจ manual stop
unless-stoppedใช่ทุกกรณีใช่ไม่ (respect การ stop ด้วยมือ)Production ทั่วไป (แนะนำมากสุด)

— –restart=unless-stopped

— –restart=unless-stopped เป็น restart policy ที่คนนิยมใช้มากที่สุดสำหรับ production หรือบริการที่ต้องการความเสถียรสูง แต่ไม่อยากให้มัน “ดื้อ” เกินไป นี่คือผลกระทบหลัก ๆ และพฤติกรรมที่เกิดขึ้นจริง

ข้อดีของ unless-stopped

ข้อควรระวัง / ผลกระทบที่อาจเจอ

สรุป: –restart=unless-stopped คือตัวเลือก “ฉลาด” ที่สุดสำหรับคนส่วนใหญ่ เพราะ balance ระหว่างความน่าเชื่อถือ ( auto recover จาก crash / reboot ) กับการควบคุม ( manual stop แล้วมันอยู่เฉย ๆ จริง ๆ )
ถ้าใช้ใน OrbStack แล้วอยากให้ run ตอนเปิดเครื่อง → ยังไงก็ต้องตั้งค่า OrbStack ให้เปิดอัตโนมัติใน Login Items อยู่ดี ( ตามที่บอกไปก่อนหน้า ) แล้ว unless-stopped จะช่วยให้ container ที่เคย run อยู่ก่อนหน้านี้ขึ้นมาอัตโนมัติ

Exit mobile version