โลโก้ Docker
อันดับ 2 ใน Top 100 Container และ VirtualizationApache License 2.0 (Docker Engine)

Docker คืออะไร และวิธีติดตั้งบน Cloud Server

Docker คือเครื่องมือที่แพ็กแอปพลิเคชันพร้อมทุกสิ่งที่มันต้องใช้ไว้ในกล่องเดียวที่เรียกว่า Container ทำให้รันได้เหมือนกันทุกเครื่อง และเป็นวิธีมาตรฐานในการติดตั้งซอฟต์แวร์บนเซิร์ฟเวอร์ยุคนี้

หมวดหมู่
Container และ Virtualization
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
Apache License 2.0 (Docker Engine)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • 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 บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 80 / 443, 2375 / 2376 ตัว Docker และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Docker ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Docker

รันเหมือนกันทุกเครื่อง

Image เดียวกันให้ผลลัพธ์เหมือนกันทั้งบนเครื่องนักพัฒนาและบน Production

เริ่มทำงานเร็ว

Container ขึ้นในไม่กี่วินาที ต่างจากเครื่องเสมือนที่ต้องบูตระบบปฏิบัติการใหม่ทั้งชุด

แยกสภาพแวดล้อมของแต่ละแอป

แต่ละบริการมีไลบรารีของตัวเอง จึงรันหลายเวอร์ชันบนเครื่องเดียวได้โดยไม่ชนกัน

มี Image สำเร็จรูปนับแสน

ซอฟต์แวร์ยอดนิยมเกือบทุกตัวมี Image ทางการให้ใช้ ติดตั้งได้ในคำสั่งเดียว

Docker Compose

อธิบายทั้งระบบไว้ในไฟล์เดียว ทำให้สร้างซ้ำ ย้ายเครื่อง และเก็บเป็นโค้ดใน Git ได้

ใช้ Docker ทำอะไรได้บ้าง

  • ติดตั้งซอฟต์แวร์โอเพนซอร์สบนเซิร์ฟเวอร์โดยไม่ต้องไล่ลง Dependency เอง
  • รันหลายระบบภายในองค์กรบน Cloud Server เครื่องเดียวอย่างเป็นระเบียบ
  • สร้างสภาพแวดล้อมทดสอบที่เหมือน Production เพื่อลดปัญหาตอนขึ้นระบบ
  • ทำ CI/CD ที่บิลด์เป็น Image แล้ว Deploy ด้วยการเปลี่ยนแท็กเวอร์ชัน

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Docker 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 200 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นรัน 3 ถึง 5 คอนเทนเนอร์เบา ๆ2 vCPU4 GBNVMe 40 GB
แนะนำระบบภายในองค์กรหลายบริการพร้อมฐานข้อมูล4 vCPU8 GBNVMe 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. 1

    ติดตั้ง Docker Engine พร้อมปลั๊กอิน Compose

    สคริปต์ทางการจะเพิ่มที่เก็บแพ็กเกจของ Docker และติดตั้งทั้ง Engine, CLI และปลั๊กอิน Compose ให้ครบ

    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
  2. 2

    ให้ผู้ใช้ปัจจุบันสั่ง docker ได้โดยไม่ต้อง sudo

    ต้องออกจากระบบแล้วเข้าใหม่หนึ่งครั้งเพื่อให้กลุ่มผู้ใช้มีผล

    sudo usermod -aG docker $USER
    newgrp docker
  3. 3

    ตรวจสอบว่าติดตั้งสำเร็จ

    docker version
    docker compose version
    docker run --rm hello-world
  4. 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. 5

    ตั้งการล้าง Image เก่าตามรอบ

    Image และ Volume ที่ไม่ใช้แล้วกินดิสก์เงียบ ๆ จนเต็มได้ ตั้งงานล้างตามรอบไว้ตั้งแต่แรก

    docker system df
    docker system prune -f

ข้อมูลของคอนเทนเนอร์จะหายเมื่อลบคอนเทนเนอร์ ถ้าเป็นข้อมูลที่ต้องเก็บ ให้ผูก Volume ไว้เสมอและรวม Volume เข้าในแผน Backup

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
80 / 443TCPเปิดเฉพาะพอร์ตของบริการที่ต้องให้คนภายนอกเข้าถึงจริง
2375 / 2376TCPDocker 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 ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด