Docker คืออะไร? อธิบายแบบเห็นภาพ พร้อมวิธีใช้จริงบน VPS
ถ้าคุณเคยอ่านคู่มือติดตั้งโปรแกรมบนเซิร์ฟเวอร์ คุณจะเจอคำว่า Docker แทบทุกครั้ง จนหลายคนสงสัยว่าตกลงมันคืออะไรกันแน่ เป็นระบบปฏิบัติการ เป็นโปรแกรม หรือเป็นบริการคลาวด์
บทความนี้อธิบาย Docker แบบไม่ใช้ศัพท์เทคนิคเกินจำเป็น เริ่มจากว่ามันคืออะไร แก้ปัญหาอะไร ศัพท์หลักที่ต้องรู้มีอะไรบ้าง ต่างจาก Virtual Machine ยังไง และทำไมคนที่เช่า VPS ถึงลง Docker กันเกือบทุกเครื่อง
Docker คืออะไร
Docker คือเครื่องมือที่ช่วยห่อโปรแกรมหนึ่งตัวเข้ากับทุกอย่างที่โปรแกรมนั้นต้องใช้ ไม่ว่าจะเป็นไลบรารี ไฟล์ตั้งค่า หรือเวอร์ชันของเครื่องมือที่มันพึ่งพา แล้วรวมเป็นชุดเดียวที่พร้อมรัน ชุดนั้นเอาไปวางบนเครื่องไหนที่มี Docker อยู่ ก็ทำงานเหมือนกันทุกเครื่อง
เปรียบเทียบให้เห็นภาพ ลองนึกถึงตู้คอนเทนเนอร์ที่ใช้ขนของ ตัวสินค้าข้างในจะเป็นอะไรก็ได้ แต่ตู้มีขนาดมาตรฐานเหมือนกันหมด เรือ รถบรรทุก หรือรถไฟจึงยกไปได้โดยไม่ต้องสนใจว่าข้างในคืออะไร Docker ทำแบบเดียวกันกับซอฟต์แวร์ — เครื่องที่รับไม่ต้องรู้ว่าข้างในเขียนด้วยภาษาอะไรหรือต้องใช้ไลบรารีเวอร์ชันไหน แค่รู้ว่ามันเป็นคอนเทนเนอร์ก็รันได้
ในทางเทคนิค Docker ใช้ความสามารถของ Linux kernel ในการแยกกระบวนการและทรัพยากรออกจากกัน ทำให้แต่ละคอนเทนเนอร์เห็นเหมือนว่ามีระบบไฟล์และเครือข่ายเป็นของตัวเอง ทั้งที่จริงยังใช้ kernel เดียวกันกับเครื่องแม่ ตรงนี้แหละที่ทำให้มันเบากว่าการสร้างเครื่องเสมือนเต็มรูปแบบมาก
ปัญหาที่ Docker เกิดมาแก้: "บนเครื่องผมรันได้นี่"
ก่อนจะมี Docker การย้ายโปรแกรมจากเครื่องนักพัฒนาไปเซิร์ฟเวอร์จริงเป็นเรื่องน่าปวดหัวมาก เพราะเครื่องสองเครื่องแทบไม่เคยเหมือนกันเป๊ะ ๆ เวอร์ชันของภาษาอาจต่างกันนิดเดียว ไลบรารีที่จำเป็นอาจขาดไปตัวหนึ่ง หรือไฟล์ตั้งค่าอยู่คนละที่ ผลคือโปรแกรมที่รันดีบนโน้ตบุ๊กกลับพังทันทีบนเซิร์ฟเวอร์
สถานการณ์นี้จบลงที่ประโยคคลาสสิกว่า "แต่บนเครื่องผมมันรันได้นี่" ซึ่งไม่ได้ช่วยให้ระบบขึ้นได้จริง Docker แก้ตรงจุดนี้ด้วยการย้ายทั้งสภาพแวดล้อมไปพร้อมกับโปรแกรม แทนที่จะย้ายแค่ตัวโปรแกรมแล้วหวังว่าปลายทางจะมีของครบ
ผลพลอยได้อีกอย่างคือการติดตั้งกลายเป็นเรื่องซ้ำได้ ถ้าคุณต้องตั้งเซิร์ฟเวอร์ใหม่แบบเดิมอีกสิบเครื่อง คุณไม่ต้องไล่ทำตามคู่มือทีละขั้นสิบรอบ แค่ใช้ image เดิมกับไฟล์ตั้งค่าเดิม ผลลัพธ์ก็ออกมาเหมือนกันทุกเครื่อง
ศัพท์หลักที่ต้องรู้
เอกสารเกี่ยวกับ Docker เต็มไปด้วยศัพท์เฉพาะ แต่จริง ๆ มีอยู่ไม่กี่คำที่ต้องเข้าใจก่อนถึงจะอ่านคู่มืออื่น ๆ รู้เรื่อง ตารางนี้สรุปเฉพาะคำที่เจอบ่อยที่สุด
| ศัพท์ | คืออะไร | เทียบให้เห็นภาพ |
|---|---|---|
| Image | แม่แบบสำเร็จรูปที่บรรจุแอปและสิ่งที่มันต้องใช้ไว้แล้ว เป็นไฟล์อ่านอย่างเดียว | เหมือนไฟล์ติดตั้งหรือแม่พิมพ์ ยังไม่ได้ทำงานจนกว่าจะเอาไปรัน |
| Container | ตัว image ที่ถูกสั่งให้ทำงานจริง หนึ่ง image สร้างได้หลาย container | เหมือนโปรแกรมที่เปิดขึ้นมาแล้วกำลังรันอยู่ |
| Volume | พื้นที่เก็บข้อมูลถาวรที่แยกออกจากตัว container | เหมือนฮาร์ดดิสก์ภายนอก ลบ container แล้วข้อมูลยังอยู่ |
| Docker Compose | เครื่องมือกำหนดหลาย container และการเชื่อมต่อกันไว้ในไฟล์ตั้งค่าไฟล์เดียว | เหมือนใบสั่งงานที่บอกว่าต้องเปิดบริการอะไรบ้างและต่อกันยังไง |
| Registry | ที่เก็บ image ให้ดาวน์โหลดไปใช้ เช่น Docker Hub หรือ registry ส่วนตัว | เหมือนคลังแอปที่ไว้ดึง image มาใช้ |
| Dockerfile | ไฟล์สูตรที่บอกขั้นตอนสร้าง image ขึ้นมาเอง | เหมือนสูตรอาหารที่ใช้ทำ image ตามที่ต้องการ |
Docker ต่างจาก Virtual Machine ยังไง
ทั้งสองอย่างทำให้รันหลายอย่างแยกจากกันบนเครื่องเดียวได้ก็จริง แต่วิธีทำงานต่างกันที่ระดับความลึก Virtual Machine จำลองเครื่องคอมพิวเตอร์ทั้งเครื่องขึ้นมา แต่ละ VM จึงมีระบบปฏิบัติการของตัวเองเต็ม ๆ ส่วนคอนเทนเนอร์ใช้ kernel ร่วมกับเครื่องแม่ แล้วแยกแค่ระดับกระบวนการและระบบไฟล์
ผลที่ตามมาคือคอนเทนเนอร์เริ่มทำงานเร็วกว่าและกินทรัพยากรน้อยกว่ามาก เพราะไม่ต้องบูตระบบปฏิบัติการใหม่ทุกครั้ง แต่ในทางกลับกัน VM ให้การแยกที่เข้มงวดกว่า และรันระบบปฏิบัติการต่างชนิดจากเครื่องแม่ได้ ซึ่งคอนเทนเนอร์ทำไม่ได้โดยตรง
| หัวข้อ | Docker (Container) | Virtual Machine |
|---|---|---|
| ระบบปฏิบัติการ | ใช้ kernel ร่วมกับเครื่องแม่ | มี OS เต็มของตัวเองในแต่ละ VM |
| ขนาด | ตั้งแต่ไม่กี่สิบ MB ถึงหลักร้อย MB | มักหลาย GB ต่อเครื่อง |
| เวลาเริ่มทำงาน | ระดับวินาที | ระดับสิบวินาทีถึงนาที |
| การใช้ทรัพยากร | เบา รันหลายตัวพร้อมกันบนเครื่องเดียวได้ง่าย | หนักกว่า เพราะต้องกันแรมให้ OS แต่ละตัว |
| ระดับการแยก | แยกระดับกระบวนการ | แยกระดับเครื่อง เข้มงวดกว่า |
| รัน OS ต่างชนิด | ไม่ได้โดยตรง | ได้ เช่นรัน Windows บนโฮสต์ Linux |
ทำไมคนเช่า VPS ถึงนิยมลง Docker
เมื่อคุณเช่า VPS มาหนึ่งเครื่อง คุณมักไม่ได้อยากรันแค่อย่างเดียว อาจอยากมีทั้งเว็บแอป ฐานข้อมูล และเครื่องมือภายในทีมอยู่ด้วยกัน ปัญหาคือถ้าลงทุกอย่างตรง ๆ ลงบนเครื่อง แต่ละตัวมักต้องการเวอร์ชันของไลบรารีไม่ตรงกัน จนตีกันเองในที่สุด
- ลงหลายบริการบนเครื่องเดียวโดยไม่ตีกัน — แต่ละคอนเทนเนอร์มีสภาพแวดล้อมของตัวเอง จะใช้คนละเวอร์ชันก็ไม่ชนกัน
- ย้ายเครื่องง่าย — ถ้าจะย้ายไป VPS ตัวใหม่ ก็ยกไฟล์ตั้งค่ากับข้อมูลใน volume ไปตั้งใหม่ ได้ผลเหมือนเดิม
- ติดตั้งและถอนสะอาด — ลบคอนเทนเนอร์กับ image ทิ้งแล้วเครื่องกลับมาเหมือนเดิม ไม่มีไฟล์กระจัดกระจายค้างทั่วระบบ
- อัปเดตและย้อนกลับง่ายกว่า — เปลี่ยนไปใช้ image เวอร์ชันใหม่ ถ้ามีปัญหาก็สลับกลับเวอร์ชันเดิมได้
- ทำตามคู่มือได้ตรงกว่า — คู่มือติดตั้งสมัยใหม่ส่วนใหญ่เขียนในรูปแบบ Docker อยู่แล้ว ลดโอกาสพลาดจากความต่างของเครื่อง
- ทดลองได้ไม่กลัวพัง — อยากลองซอฟต์แวร์ตัวใหม่ก็เปิดคอนเทนเนอร์ทดสอบ ไม่พอใจก็ลบทิ้ง เครื่องหลักไม่รก
ตัวอย่างสิ่งที่คนนิยมรันด้วย Docker บน VPS
ของที่เอามารันจริง ๆ บนเครื่องเช่ามักเป็นบริการที่ต้องเปิดตลอดเวลา และอยากให้ติดตั้งครั้งเดียวจบ ตัวอย่างที่พบบ่อยมีดังนี้ ซึ่งหลายอย่างรันอยู่บนเครื่องเดียวกันได้ถ้าแรมพอ ตัวที่คนไทยถามถึงบ่อยที่สุดตอนนี้คือระบบ automation อย่าง n8n
- ระบบ automation ที่เชื่อมบริการต่าง ๆ เข้าด้วยกัน เช่น n8n ซึ่งมีคู่มือติดตั้งแบบ Docker ให้ทำตามอยู่แล้ว
- ฐานข้อมูล เช่น PostgreSQL หรือ MySQL ที่ใช้เก็บข้อมูลให้บริการอื่นบนเครื่องเดียวกัน
- เว็บแอปหรือ API ของตัวเอง ที่แพ็กเป็น image แล้วสั่งรันบนเซิร์ฟเวอร์ได้ทันที
- เครื่องมือภายในทีม เช่น ระบบจดบันทึก ระบบจัดการงาน หรือแดชบอร์ดที่ไม่อยากให้อยู่บนบริการภายนอก
- ตัวจัดการ reverse proxy ที่ทำหน้าที่รับทราฟฟิกและกระจายไปยังบริการต่าง ๆ พร้อมจัดการใบรับรอง HTTPS ให้
- ระบบเก็บสถิติและการแจ้งเตือน ที่คอยดูว่าบริการต่าง ๆ ยังทำงานปกติหรือไม่
สเปก VPS ที่ควรใช้สำหรับรัน Docker
ตัว Docker เองแทบไม่กินทรัพยากร สิ่งที่กินคือบริการที่คุณรันข้างในต่างหาก ดังนั้นการเลือกสเปกให้ดูที่ว่าจะรันอะไรบ้างและแต่ละตัวกินแรมเท่าไหร่ ตารางด้านล่างคือแพ็กเกจ VPS ของ Plusweb ทุกตัวมี 1 Public IPv4 ในตัว และตัวเลขในวงเล็บคือราคาต่อเดือนเมื่อชำระรายปี
| แพ็กเกจ | CPU | RAM | SSD | ราคา/เดือน (รายปี) |
|---|---|---|---|---|
| VPS-00 | 1 vCore | 1 GB | 15 GB | 150฿ (120฿) |
| VPS-01 | 1 vCore | 3 GB | 30 GB | 250฿ (200฿) |
| VPS-02 | 2 vCores | 4 GB | 60 GB | 350฿ (280฿) |
| VPS-03 | 4 vCores | 8 GB | 100 GB | 600฿ (480฿) |
| VPS-04 | 5 vCores | 10 GB | 140 GB | 1,000฿ (800฿) |
ข้อควรระวังก่อนเริ่มใช้จริง
Docker ทำให้หลายอย่างง่ายขึ้นก็จริง แต่มันไม่ได้แก้ทุกปัญหา และมีจุดที่คนพลาดกันซ้ำ ๆ สามเรื่องหลัก คือพื้นที่ดิสก์ ข้อมูลใน volume และความปลอดภัยของสิ่งที่เปิดออกสู่อินเทอร์เน็ต
- เผื่อพื้นที่ให้ image — image ที่ดาวน์โหลดมาสะสมกินดิสก์ไปเรื่อย ๆ โดยเฉพาะเวลาอัปเดตบ่อย ควรเคลียร์ image เก่าที่ไม่ใช้เป็นระยะ
- backup volume เสมอ — ข้อมูลจริงอยู่ใน volume ไม่ได้อยู่ใน image การลบคอนเทนเนอร์ผิดตัวหรือลบ volume ทิ้งคือการสูญข้อมูลถาวร
- ระวังพอร์ตที่เปิดออกสาธารณะ — คอนเทนเนอร์ที่ผูกพอร์ตกับ IP สาธารณะจะเข้าถึงได้จากทั้งอินเทอร์เน็ต ควรเปิดเท่าที่จำเป็นและตั้งรหัสผ่านให้แข็งแรง
- ระวังไฟล์ตั้งค่าที่มีรหัสผ่าน — ไฟล์ตั้งค่ามักเก็บคีย์และรหัสผ่านไว้ ไม่ควรอัปโหลดขึ้นที่เก็บโค้ดสาธารณะโดยเด็ดขาด
- เลือก image จากแหล่งที่น่าเชื่อถือ — image สาธารณะใครก็อัปโหลดได้ ควรใช้ของผู้พัฒนาอย่างเป็นทางการหรือแหล่งที่ตรวจสอบได้
- อย่าตั้งค่าให้คอนเทนเนอร์ทำงานด้วยสิทธิ์เกินจำเป็น — ให้สิทธิ์เท่าที่บริการนั้นต้องใช้จริงเท่านั้น
สรุป
Docker คือวิธีห่อโปรแกรมพร้อมสภาพแวดล้อมของมันไว้เป็นชุดเดียว เพื่อให้รันที่ไหนก็ได้ผลเหมือนกัน มันไม่ใช่ระบบปฏิบัติการ ไม่ใช่บริการคลาวด์ และไม่ได้แทนที่ VPS แต่เป็นชั้นที่วางอยู่บน VPS อีกที เพื่อให้จัดการหลายบริการบนเครื่องเดียวได้เป็นระเบียบ
ถ้าอยากลองของจริงสักตัว ทางที่ตรงที่สุดคือเช่าเซิร์ฟเวอร์เล็ก ๆ แล้วติดตั้งบริการที่มีคู่มือแบบ Docker อยู่แล้ว เช่นตามขั้นตอนใน วิธีติดตั้ง n8n บน VPS ด้วย Docker หรือถ้ายังไม่แน่ใจว่าควรเช่าเครื่องเองหรือใช้บริการคลาวด์ ลองอ่าน n8n Cloud กับ self-host เทียบกัน ก่อนตัดสินใจ
และถ้ายังไม่เคยเช่าเซิร์ฟเวอร์มาก่อน แนะนำอ่าน VPS คืออะไร กับ VPS ต่างจาก Web Hosting ยังไง ประกอบ เพราะโฮสติ้งแบบแชร์ทั่วไปมักไม่อนุญาตให้ติดตั้ง Docker เอง จึงต้องใช้ VPS ที่มีสิทธิ์ root เต็มเท่านั้น
อยากลอง Docker บนเซิร์ฟเวอร์จริง?
VPS ของ Plusweb มีสิทธิ์ root เต็มและ Public IPv4 ในตัว เริ่มต้น 120฿/เดือน (รายปี) ติดตั้ง Docker ได้ทันที
คำถามที่พบบ่อย
Docker คืออะไรแบบสั้นที่สุด?
Docker คือเครื่องมือที่ห่อโปรแกรมเข้ากับทุกอย่างที่โปรแกรมนั้นต้องใช้ ทั้งไลบรารีและไฟล์ตั้งค่า รวมเป็นชุดเดียวที่เรียกว่าคอนเทนเนอร์ ทำให้ย้ายไปรันบนเครื่องไหนที่มี Docker ก็ได้ผลเหมือนกัน ไม่ต้องมานั่งไล่ติดตั้งของที่จำเป็นทีละอย่างบนเครื่องปลายทาง
Image กับ Container ต่างกันยังไง?
Image คือแม่แบบที่อ่านอย่างเดียว บรรจุแอปและสิ่งที่มันต้องใช้ไว้แล้วแต่ยังไม่ทำงาน ส่วน Container คือ image ที่ถูกสั่งให้รันจริง หนึ่ง image สร้าง container ได้หลายตัว และลบ container ทิ้งแล้วสร้างใหม่จาก image เดิมได้เสมอ
Docker ต่างจาก Virtual Machine ตรงไหน?
VM จำลองเครื่องทั้งเครื่องและมีระบบปฏิบัติการของตัวเองเต็ม ๆ จึงหนักและบูตช้ากว่า ส่วนคอนเทนเนอร์ใช้ kernel ร่วมกับเครื่องแม่แล้วแยกแค่ระดับกระบวนการและระบบไฟล์ จึงเบากว่าและเริ่มทำงานในไม่กี่วินาที แต่ VM แยกได้เข้มงวดกว่าและรัน OS ต่างชนิดจากเครื่องแม่ได้
Docker Compose คืออะไร ต้องใช้ไหม?
Docker Compose คือเครื่องมือที่ให้คุณกำหนดหลายคอนเทนเนอร์และวิธีเชื่อมต่อกันไว้ในไฟล์ตั้งค่าไฟล์เดียว แล้วสั่งเปิดหรือปิดทั้งชุดพร้อมกันได้ ถ้ารันบริการเดียวก็ไม่จำเป็น แต่พอมีตั้งแต่สองบริการขึ้นไป เช่นเว็บแอปคู่กับฐานข้อมูล การใช้ Compose จะจัดการง่ายกว่ามาก
ลง Docker บน VPS แพ็กเกจไหนดี?
ตัว Docker เองแทบไม่กินทรัพยากร ให้ดูที่บริการที่จะรันข้างในเป็นหลัก ถ้าทดลองหรือรันบริการเบา ๆ ตัวเดียว VPS-00 (1 vCore / 1 GB / 15 GB) ที่ 150฿ ต่อเดือนก็เริ่มได้ ถ้าใช้จริงแนะนำ VPS-01 (1 vCore / 3 GB / 30 GB) และถ้ารันหลายบริการพร้อมกันควรเป็น VPS-02 (2 vCores / 4 GB / 60 GB) ขึ้นไป
ลบคอนเทนเนอร์แล้วข้อมูลหายไหม?
ขึ้นกับว่าเก็บข้อมูลไว้ตรงไหน ถ้าข้อมูลอยู่ใน volume ที่แยกไว้ต่างหาก การลบคอนเทนเนอร์จะไม่กระทบข้อมูล แต่ถ้าเขียนข้อมูลลงในตัวคอนเทนเนอร์โดยตรง ลบแล้วหายถาวร จึงควรกำหนด volume ให้บริการที่มีข้อมูลสำคัญเสมอ และตั้ง backup ของ volume ไว้ด้วย
GUIDES
บทความที่เกี่ยวข้อง
อ่านต่อในหัวข้อใกล้เคียง
n8n คืออะไร? เครื่องมือ Workflow Automation ที่ต่อทุกแอปเข้าด้วยกัน
n8n คืออะไร ทำอะไรได้บ้าง ต่างจากเครื่องมือ automation ตัวอื่นยังไง และทำไมคนถึงเลือก self-host — อธิบายศัพท์ Node / Trigger / Workflow / Execution / Credential แบบเข้าใจง่ายตั้งแต่ศูนย์
อ่านต่อวิธีติดตั้ง n8n บน VPS ด้วย Docker แบบ Self-hosted
ลง n8n เองบน VPS ด้วย Docker ต้องเตรียมอะไร ใช้สเปกเท่าไหร่ ขั้นตอนมีกี่ขั้น และค่าตั้งค่าไหนที่ถ้าลืมแล้ว schedule ยิงผิดเวลาหรือ webhook ใช้ไม่ได้ — สรุปครบในที่เดียว
อ่านต่อVPS คืออะไร? ใช้ทำอะไรได้บ้าง ฉบับเข้าใจง่าย
สรุปครบเรื่อง VPS — VPS server คืออะไร ทำงานยังไง Cloud VPS ต่างจาก VPS ทั่วไปตรงไหน ใช้ทำอะไรได้บ้าง เทียบกับ Shared Hosting และ Dedicated ใครควรใช้ และเริ่มต้นยังไงในปี 2026
อ่านต่อ