Docker บน NAS คืออะไร และทำไมควรสนใจ
Docker บน NAS คือการนำความสามารถของ Docker และ Docker Compose มาใช้บนฮาร์ดแวร์ NAS เพื่อรันแอปพลิเคชัน self-hosted แบบ 24/7 โดยใช้ Synology Container Manager ที่ทำงานเหมือน Docker บนเครื่องเซิร์ฟเวอร์ทั่วไป สามารถติดตั้งและจัดการคอนเทนเนอร์ได้ผ่านอินเทอร์เฟซ DSM โดยไม่ต้องใช้คำสั่ง SSH เหมาะสำหรับคนที่มี NAS อยู่แล้วและต้องการทดแทนบริการคลาวด์ด้วยซอฟต์แวร์ฟรีหรือโอเพ่นซอร์ส ทั้งนี้ควรมีเครื่อง NAS ที่มีทรัพยากรเพียงพอและไม่ใช้สำหรับทดลองเสี่ยงกับข้อมูลสำคัญ.
ส่วนใหญ่ผู้ใช้ NAS มักใช้เก็บสำรองข้อมูลหรือแชร์ไฟล์เท่านั้น แต่ NAS รุ่นใหม่มีพลังมากกว่าที่คิด และสามารถกลายเป็นเครื่อง self-hosting สำหรับงานที่ต้องเปิดตลอดเวลาได้ การใช้ Docker บน NAS ผ่าน Synology Container Manager ทำให้เราเรียกใช้แอปอย่าง Immich สำหรับสำรองรูปภาพคล้าย Google Photos หรือ Nextcloud ที่ทำหน้าที่คล้าย Office 365 และบริการคลาวด์เก็บไฟล์ต่างๆ วิธีนี้ช่วยลดความจำเป็นในการซื้อเซิร์ฟเวอร์แยก เพราะ NAS ที่เปิดอยู่ทั้งวันอยู่แล้วสามารถทำหน้าที่โฮสต์บริการเหล่านี้ไปพร้อมกันได้.

เตรียมเครื่องและทำความเข้าใจกับ Synology Container Manager
ก่อนลงมือ คุณต้องมี Synology NAS ที่ไม่อัดแน่นด้วยงานแบ็กอัพจนเกินไป และยังมี CPU กับ RAM เหลือสำหรับรันคอนเทนเนอร์เพิ่มอีกเล็กน้อย แหล่งข้อมูลหนึ่งระบุว่า "as long as you have a semi-decent rig and aren’t running out of memory or storage resources, you’ll find plenty of other useful apps" ซึ่งสะท้อนว่าถ้าเครื่องไม่ขาดทรัพยากร คุณมีพื้นที่สำหรับทดลองแอป self-hosted เพิ่มแน่นอน. NAS ที่มีซีพียูระดับ i3-N305 ขึ้นไปยังสามารถโฮสต์เครื่องเสมือนได้อีกหนึ่งหรือสองเครื่องด้วย.
ใน DSM 7.2 Synology เปลี่ยนชื่อแพ็กเกจ Docker เป็น Container Manager ทำให้หลายคนงงว่าทำไมหา Docker ไม่เจอ แต่จริงๆ แล้ว Container Manager ก็คือ Docker ใช้ image และเอกสารประกอบชุดเดียวกันทุกประการ เมื่อเปิดใช้งาน คุณจะเจอแท็บ Overview, Project, Container, Image, Registry, Network และ Log ซึ่งแต่ละแท็บมีหน้าที่ต่างกัน เช่น Project สำหรับ Docker Compose, Registry สำหรับค้นหา image จาก Docker Hub แพ็กเกจนี้อยู่ใน Package Center และหากคุณอัปเกรดจาก DSM รุ่นเก่ามันจะมาแทนแพ็กเกจ Docker เดิมโดยคอนเทนเนอร์ที่มีอยู่ยังอยู่ครบ.
ขั้นตอนทีละสเต็ป: ใช้ Project สร้าง Docker บน NAS
หัวใจของการเปลี่ยน NAS เป็นแหล่งรวมแอปพลิเคชัน self-hosted คือการใช้แท็บ Project ใน Synology Container Manager เพื่อรัน Docker Compose โดยตรงบน NAS วิธีนี้เก็บการตั้งค่าทั้งหมดไว้ในไฟล์เดียว ทำให้คอนเทนเนอร์ย้ายเครื่องได้ง่ายกว่าการสร้างผ่าน GUI ทีละหน้า ถ้าภายหลังคุณย้ายไปใช้เซิร์ฟเวอร์ Proxmox หรือมินิพีซีใหม่ แค่คัดลอกโฟลเดอร์ โปรเจ็กต์ไปแล้วรันคำสั่งเดียวก็กลับมาทำงานได้ โดยไม่ต้องสร้างคอนเทนเนอร์ใหม่จากความจำ.
- เปิด File Station แล้วสร้างโฟลเดอร์สำหรับคอนเทนเนอร์ใหม่ภายในโฟลเดอร์แชร์ชื่อ docker ซึ่งถูกสร้างขึ้นเมื่อคุณติดตั้ง Container Manager ทุกโปรเจ็กต์ควรมีโฟลเดอร์ย่อยของตัวเอง.
- ไปที่แท็บ Project ใน Container Manager กด Create ตั้งชื่อโปรเจ็กต์ และเลือก path ให้ชี้ไปที่โฟลเดอร์ที่คุณสร้างในขั้นแรก.
- เลือกตัวเลือก Create docker-compose.yml แล้ววางเนื้อหาไฟล์ Compose จากเอกสารบน Docker Hub หรือนำไฟล์ docker-compose.yml ที่มีอยู่แล้วมาอัปโหลด แต่ละคอนเทนเนอร์ควรมีไฟล์ Compose ของตัวเอง ไม่ควรเททุกอย่างรวมไว้ที่ root ของ docker.
- แก้ไขไฟล์ docker-compose.yml ก่อนกดสร้างโปรเจ็กต์ เพื่อกำหนดรหัสผ่าน timezone การแม็พพอร์ต และที่สำคัญที่สุดคือปรับ volume path ให้ตรงกับโครงสร้างโฟลเดอร์บน NAS เพราะจุดนี้เป็นสาเหตุหลักของการสร้างคอนเทนเนอร์ล้มเหลว.
เมื่อ path ทุกอย่างถูกต้องแล้ว ให้สร้างโปรเจ็กต์ Container Manager จะสร้างคอนเทนเนอร์ตามไฟล์ Compose ให้คุณทันที หากเกิดข้อผิดพลาดมักเป็นเพราะโฟลเดอร์ที่อ้างถึงใน path ยังไม่ถูกสร้าง หรือมีการชนกันของพอร์ตที่กำลังใช้งานอยู่ อีกทางเลือกหนึ่งคือใช้แท็บ Container สร้างผ่าน GUI ซึ่งจะใช้ชุดคำตั้งค่าเดียวกับไฟล์ Compose เพียงแต่แยกออกเป็นขั้นๆ ผ่าน wizard ดังนั้นหากคุณอ่านไฟล์ Compose เข้าใจ ก็เข้าใจ GUI ด้วยเช่นกัน.

หลุมพรางที่พบบ่อย: volume path และการทดลองเสี่ยง
จุดที่ทำให้หลายคนหัวเสียที่สุดในการใช้ Docker บน NAS ผ่าน Synology Container Manager คือเรื่อง volume path ในไฟล์ Compose เอกสารส่วนใหญ่บน Docker Hub มักใช้ path แบบสัมพัทธ์ เช่น ./etc-pihole:/etc/pihole ซึ่งไม่ทำงานบน Synology และรายละเอียดเล็กๆ นี้เป็นสาเหตุของคอนเทนเนอร์พังมากที่สุดใน Container Manager คุณต้องแปลง path ให้ตรงกับโครงสร้างโฟลเดอร์บน NAS เช่น /volume1/docker/ชื่อโปรเจ็กต์ เป็นต้น และต้องระวังไม่ให้ path ไปชนโฟลเดอร์ที่ใช้ร่วมกับงานอื่นบน NAS.
อีกข้อผิดพลาดใหญ่คือการคิดว่า Container Manager จะช่วยสร้างโฟลเดอย่อยให้ตามที่ระบุในไฟล์ Compose ซึ่งไม่เป็นความจริง ระบบจะไม่สร้างโฟลเดอร์เหล่านั้นให้เลย ทุกโฟลเดอร์ใน path ฝั่ง local ต้องมีอยู่จริงใน File Station ก่อนเริ่มโปรเจ็กต์ ไม่เช่นนั้นการสร้างจะล้มเหลว นอกจากนี้ไม่ควรทดลองแอปแปลกใหม่แบบไม่คิดบน NAS ที่ใช้เก็บไฟล์สำคัญ เพราะผู้เขียนแหล่งข้อมูลหนึ่งเตือนว่าไม่ควร "run wild experiments on your NAS if you’re using it to store essential files" ซึ่งมาจากประสบการณ์จริงของเขา.
ต่อยอดเป็นศูนย์กลางแอป self-hosted ทดแทนบริการคลาวด์
เมื่อคุณจับทางการใช้ Synology Container Manager ได้แล้ว NAS เครื่องเดิมจะกลายเป็นศูนย์กลางแอปพลิเคชัน self-hosted ที่ทดแทนบริการคลาวด์ยอดนิยมหลายตัว เช่น Immich ที่สำรองรูปจากมือถือพร้อมอินเทอร์เฟซคล้าย Google Photos Nextcloud ที่ใช้เก็บเอกสารและไฟล์ต่างๆ และทำหน้าที่ใกล้เคียงชุด Office ออนไลน์ รวมถึงเครื่องมือจัดการเอกสารอย่าง Paperless-ngx หรือแอปสำหรับจัดการ e-book และคอมิก เช่น Calibre-Web และ Kavita ที่เหมาะกับคนชอบอ่านหนังสือ.
แอปเหล่านี้ใช้ทรัพยากรไม่มากนัก จึงเหมาะอย่างยิ่งกับการรันบน NAS ที่เปิดอยู่ตลอดเวลาอยู่แล้ว แนวทางแบบคอนเทนเนอร์ช่วยลดความจำเป็นในการตั้งเซิร์ฟเวอร์เพิ่ม ขณะที่คุณได้ใช้ศักยภาพของ NAS ให้เต็มที่จากเดิมที่ใช้แค่เก็บแบ็กอัพ สิ่งที่ต้องระวังคือการแยกโฟลเดอร์ข้อมูลแอปออกจากพื้นที่เก็บไฟล์สำคัญให้ชัด และตรวจสอบพอร์ตที่ใช้ไม่ชนกัน เมื่อวางระบบดีแล้ว การมี NAS ที่รัน Docker และ Docker Compose อยู่เบื้องหลังจะช่วยลดการพึ่งบริการคลาวด์เชิงพาณิชย์ลงได้มาก โดยยังควบคุมข้อมูลไว้ในมือคุณเอง.






