Docker คืออะไร และวิธีติดตั้งบน Cloud Server
Docker คือเครื่องมือที่แพ็กแอปพลิเคชันพร้อมทุกสิ่งที่มันต้องใช้ไว้ในกล่องเดียวที่เรียกว่า Container ทำให้รันได้เหมือนกันทุกเครื่อง และเป็นวิธีมาตรฐานในการติดตั้งซอฟต์แวร์บนเซิร์ฟเวอร์ยุคนี้
- หมวดหมู่
- Container และ Virtualization
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (Docker Engine)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Docker คืออะไร
ปัญหาคลาสสิกของการติดตั้งซอฟต์แวร์คือรันบนเครื่องนักพัฒนาได้ แต่ขึ้นเซิร์ฟเวอร์แล้วพัง เพราะเวอร์ชันของไลบรารีหรือภาษาโปรแกรมไม่ตรงกัน Docker แก้ปัญหานี้ด้วยการรวมโค้ด ไลบรารี และการตั้งค่าไว้ใน Image เดียว ที่รันออกมาเป็น Container เหมือนกันทุกที่
Container ต่างจากเครื่องเสมือนตรงที่ไม่ต้องมีระบบปฏิบัติการของตัวเอง แต่ใช้เคอร์เนลร่วมกับเครื่องโฮสต์ จึงเริ่มทำงานในไม่กี่วินาที กินทรัพยากรน้อย และรันหลายสิบตัวบน Cloud Server เครื่องเดียวได้
ในทางปฏิบัติ สิ่งที่ทีมงานใช้จริงคือ Docker Compose ซึ่งอธิบายทั้งระบบ ทั้งเว็บ ฐานข้อมูล และแคช ไว้ในไฟล์เดียว แล้วสั่งขึ้นทั้งชุดด้วยคำสั่งเดียว ทำให้ย้ายระบบข้ามเครื่องหรือสร้างสภาพแวดล้อมทดสอบใหม่ได้ในไม่กี่นาที
ความสามารถเด่นของ Docker
รันเหมือนกันทุกเครื่อง
Image เดียวกันให้ผลลัพธ์เหมือนกันทั้งบนเครื่องนักพัฒนาและบน Production
เริ่มทำงานเร็ว
Container ขึ้นในไม่กี่วินาที ต่างจากเครื่องเสมือนที่ต้องบูตระบบปฏิบัติการใหม่ทั้งชุด
แยกสภาพแวดล้อมของแต่ละแอป
แต่ละบริการมีไลบรารีของตัวเอง จึงรันหลายเวอร์ชันบนเครื่องเดียวได้โดยไม่ชนกัน
มี Image สำเร็จรูปนับแสน
ซอฟต์แวร์ยอดนิยมเกือบทุกตัวมี Image ทางการให้ใช้ ติดตั้งได้ในคำสั่งเดียว
Docker Compose
อธิบายทั้งระบบไว้ในไฟล์เดียว ทำให้สร้างซ้ำ ย้ายเครื่อง และเก็บเป็นโค้ดใน Git ได้
ใช้ Docker ทำอะไรได้บ้าง
- ติดตั้งซอฟต์แวร์โอเพนซอร์สบนเซิร์ฟเวอร์โดยไม่ต้องไล่ลง Dependency เอง
- รันหลายระบบภายในองค์กรบน Cloud Server เครื่องเดียวอย่างเป็นระเบียบ
- สร้างสภาพแวดล้อมทดสอบที่เหมือน Production เพื่อลดปัญหาตอนขึ้นระบบ
- ทำ CI/CD ที่บิลด์เป็น Image แล้ว Deploy ด้วยการเปลี่ยนแท็กเวอร์ชัน
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นรัน 3 ถึง 5 คอนเทนเนอร์เบา ๆ | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำระบบภายในองค์กรหลายบริการพร้อมฐานข้อมูล | 4 vCPU | 8 GB | NVMe 100 GB |
| ระบบใหญ่หลายสิบคอนเทนเนอร์ หรือ Production ที่มีทราฟฟิกจริง | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 200 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Docker บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS, Debian 12 หรือ Rocky Linux 9
- สิทธิ์ sudo และการเชื่อมต่ออินเทอร์เน็ตเพื่อดึง Image
- พื้นที่ดิสก์เผื่อสำหรับ Image และ Volume (Image สะสมได้เร็วกว่าที่คิด)
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Docker Engine พร้อมปลั๊กอิน Compose
สคริปต์ทางการจะเพิ่มที่เก็บแพ็กเกจของ Docker และติดตั้งทั้ง Engine, CLI และปลั๊กอิน Compose ให้ครบ
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh - 2
ให้ผู้ใช้ปัจจุบันสั่ง docker ได้โดยไม่ต้อง sudo
ต้องออกจากระบบแล้วเข้าใหม่หนึ่งครั้งเพื่อให้กลุ่มผู้ใช้มีผล
sudo usermod -aG docker $USER newgrp docker - 3
ตรวจสอบว่าติดตั้งสำเร็จ
docker version docker compose version docker run --rm hello-world - 4
ทดลองรันระบบจริงด้วย Docker Compose
สร้างไฟล์ compose.yml แล้วสั่ง docker compose up -d ระบบทั้งชุดจะขึ้นพร้อมกัน
services: web: image: nginx:alpine ports: ["80:80"] restart: always db: image: mariadb:11 environment: MARIADB_ROOT_PASSWORD: ChangeThisRootPassword volumes: [dbdata:/var/lib/mysql] restart: always volumes: dbdata: - 5
ตั้งการล้าง Image เก่าตามรอบ
Image และ Volume ที่ไม่ใช้แล้วกินดิสก์เงียบ ๆ จนเต็มได้ ตั้งงานล้างตามรอบไว้ตั้งแต่แรก
docker system df docker system prune -f
ข้อมูลของคอนเทนเนอร์จะหายเมื่อลบคอนเทนเนอร์ ถ้าเป็นข้อมูลที่ต้องเก็บ ให้ผูก Volume ไว้เสมอและรวม Volume เข้าในแผน Backup
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 80 / 443 | TCP | เปิดเฉพาะพอร์ตของบริการที่ต้องให้คนภายนอกเข้าถึงจริง |
| 2375 / 2376 | TCP | Docker API ระยะไกล (ห้ามเปิดสู่อินเทอร์เน็ตเด็ดขาด) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ห้ามเปิด Docker API ออกสู่อินเทอร์เน็ต เพราะเท่ากับมอบสิทธิ์ระดับ root ของเครื่องให้ผู้อื่น
- ระวังว่า Docker เขียนกฎ iptables เอง การเปิดพอร์ตในคอนเทนเนอร์อาจข้าม UFW ให้ผูกพอร์ตกับ 127.0.0.1 เมื่อไม่ต้องการเปิดสาธารณะ
- ใช้ Image ทางการหรือ Image ที่ตรวจสอบแล้ว และปักเวอร์ชันด้วยแท็กแทนการใช้ latest
- สแกนช่องโหว่ของ Image ด้วยเครื่องมืออย่าง Trivy ก่อนขึ้น Production
- รันคอนเทนเนอร์ด้วยผู้ใช้ที่ไม่ใช่ root และจำกัด CPU กับ RAM ต่อคอนเทนเนอร์
- สำรอง Volume ที่เก็บข้อมูลจริงตามรอบ ไม่ใช่แค่สำรองไฟล์ Compose
ทำไมควรรัน Docker บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
Cloud Server หนึ่งเครื่องรันได้หลายระบบพร้อมกันอย่างเป็นระเบียบ ช่วยลดจำนวนเครื่องที่ต้องจ่ายรายเดือน
ย้ายทั้งระบบไปเครื่องใหญ่กว่าได้ด้วยการคัดลอกไฟล์ Compose กับ Volume จึงขยายสเปกโดยไม่ต้องติดตั้งใหม่
ทีมวิศวกรของ THAI DATA CLOUD ช่วยวางโครง Docker และตั้งค่าความปลอดภัยให้ตั้งแต่วันแรกได้
คำถามที่พบบ่อยเกี่ยวกับ Docker
Docker ต่างจากเครื่องเสมือน (VM) อย่างไร
VM จำลองทั้งเครื่องรวมถึงระบบปฏิบัติการ จึงหนักและบูตช้า ส่วน Container ใช้เคอร์เนลร่วมกับโฮสต์ จึงเบาและเริ่มทำงานในไม่กี่วินาที ในทางปฏิบัติมักใช้ร่วมกัน คือมี Cloud Server ซึ่งเป็น VM แล้วรัน Container อยู่ข้างใน
ข้อมูลในคอนเทนเนอร์หายไหมเมื่อรีสตาร์ต
รีสตาร์ตไม่หาย แต่ถ้าลบคอนเทนเนอร์แล้วสร้างใหม่ ข้อมูลที่ไม่ได้อยู่ใน Volume จะหายทั้งหมด จึงต้องผูก Volume ให้กับฐานข้อมูลและไฟล์อัปโหลดเสมอ
ควรใช้ Docker กับเว็บ WordPress ไหม
ได้ทั้งสองแบบ ถ้าดูแลเว็บเดียวและถนัดวิธีเดิม การติดตั้งแบบ LEMP จะตรงไปตรงมากว่า แต่ถ้าต้องดูแลหลายเว็บหรืออยากย้ายเครื่องได้ง่าย Docker Compose จะจัดการง่ายกว่าในระยะยาว
Docker ปลอดภัยพอสำหรับ Production หรือไม่
ปลอดภัยเมื่อตั้งค่าถูกต้อง ประเด็นที่พบบ่อยคือการเปิด Docker API สู่ภายนอก การใช้ Image ที่ไม่รู้ที่มา และการรันด้วยสิทธิ์ root โดยไม่จำเป็น ปิดสามข้อนี้ได้ก็ถือว่าปลอดภัยตามมาตรฐานทั่วไป
ทางเลือกอื่นที่คล้ายกับ Docker
แอปอื่นในหมวด Container และ Virtualization
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Docker ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด