EQVPS

วิธีติดตั้ง Docker บน VPS

ติดตั้ง Docker Engine และปลั๊กอิน Compose บน Ubuntu อย่างถูกวิธี — จากที่เก็บอย่างเป็นทางการของ Docker ไม่ใช่แพ็กเกจล้าสมัยของดิสโทร — จากนั้นรันคอนเทนเนอร์ทดสอบและตั้งให้เริ่มทำงานอัตโนมัติเมื่อบูตเครื่อง ด้วยคำสั่งเพียงไม่กี่บรรทัดสู่เครื่องที่พร้อมรันคอนเทนเนอร์

Docker บรรจุแอปพร้อมทุกสิ่งที่จำเป็นไว้ในคอนเทนเนอร์ที่ทำงานเหมือนเดิมทุกที่ — วิธีที่สะอาดที่สุดในการโฮสต์บริการเองบน VPS ปัญหาเดียวบน Ubuntu และ Debian คือเวอร์ชันในที่เก็บของดิสโทรเองมักเก่าและไม่มีปลั๊กอิน Compose รุ่นใหม่มาให้ ให้ติดตั้งจาก ที่เก็บอย่างเป็นทางการของ Docker แทน นี่คือขั้นตอนทั้งหมด

1. ตั้งค่าที่เก็บอย่างเป็นทางการของ Docker (Ubuntu)

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. ติดตั้ง Docker Engine และ Compose

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. ยืนยันว่ากำลังทำงานและเปิดใช้งานตอนบูต

sudo systemctl enable --now docker
sudo docker run --rm hello-world

คอนเทนเนอร์ hello-world จะดาวน์โหลด แสดงข้อความสำเร็จ แล้วจบการทำงาน — เป็นการพิสูจน์ว่า engine ทำงานได้จริง

4. (ทางเลือก) รัน Docker โดยไม่ต้องใช้ sudo

sudo usermod -aG docker $USER
# ออกจากระบบแล้วล็อกอินใหม่เพื่อให้สิทธิ์กลุ่มมีผล

ทำเช่นนี้เฉพาะกับผู้ใช้ที่คุณไว้ใจเท่านั้น เพราะสิทธิ์ในกลุ่ม docker เทียบเท่ากับสิทธิ์ root บนเครื่องนั้น

ตัวอย่างคอนเทนเนอร์จริงแบบง่ายๆ

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# เข้าดูที่ http://YOUR.SERVER.IP:8080

--restart unless-stopped คือสิ่งที่ทำให้คอนเทนเนอร์กลับมาทำงานเองหลังรีบูต

ข้อควรระวังที่ต้องพูดตรงๆ

ขั้นตอนถัดไป

เมื่อติดตั้ง Docker แล้ว คุณสามารถโฮสต์บริการเองได้แทบทุกอย่าง ดู การโฮสต์หลายบริการเองด้วย IP เดียว หรือตัวอย่างการสร้างด้วย Docker จริงๆ เช่น เซิร์ฟเวอร์ RustDesk สำหรับควบคุมเดสก์ท็อประยะไกล และ ระบบตรวจสอบ Uptime Kuma หากต้องการนำโดเมนและ HTTPS มาไว้ด้านหน้า ดู วิธีตั้งค่า nginx reverse proxy

คำถามที่พบบ่อย

ควรใช้ 'apt install docker.io' หรือที่เก็บอย่างเป็นทางการของ Docker ดี?

หากต้องการเวอร์ชันล่าสุด ให้ใช้ที่เก็บอย่างเป็นทางการของ Docker (ตามขั้นตอนด้านล่าง) แพ็กเกจ docker.io ของดิสโทรนั้นสะดวกก็จริง แต่มักล้าหลังกว่าเวอร์ชันปัจจุบัน และปลั๊กอิน 'docker compose' รุ่นใหม่ก็มาพร้อมกับแพ็กเกจอย่างเป็นทางการเท่านั้น หากคุณต้องการเพียงเครื่องใช้งานชั่วคราวเร็วๆ docker.io ก็ใช้ได้เช่นกัน

'docker compose' กับ 'docker-compose' ต่างกันอย่างไร?

'docker-compose' แบบเดิมเป็นเครื่องมือ Python แยกต่างหาก (มีขีดกลาง) ส่วนเวอร์ชันปัจจุบันคือ 'docker compose' (มีช่องว่าง) ซึ่งเป็นปลั๊กอินที่มาพร้อมกับ Docker ให้ใช้ปลั๊กอินนี้ ส่วนเครื่องมือแบบสแตนด์อโลนถือเป็นของเก่าแล้ว ติดตั้ง docker-compose-plugin ตามที่แสดงไว้ แล้วคุณจะได้ตัวนี้มาด้วย

จะรัน Docker โดยไม่ต้องพิมพ์ sudo ทุกครั้งได้อย่างไร?

เพิ่มผู้ใช้ของคุณเข้าไปในกลุ่ม docker: 'sudo usermod -aG docker $USER' จากนั้นออกจากระบบแล้วล็อกอินใหม่ ควรทราบว่าสิทธิ์นี้เทียบเท่ากับสิทธิ์ root ผ่านคอนเทนเนอร์ได้ ดังนั้นทำเช่นนี้เฉพาะกับผู้ใช้ที่คุณไว้ใจบนเครื่องของคุณเองเท่านั้น

Docker ต้องการ RAM เท่าไหร่?

ตัว Docker เองใช้ทรัพยากรน้อยมาก สิ่งที่สำคัญคือคอนเทนเนอร์ที่คุณรัน แอปเล็กๆ หนึ่งหรือสองตัวสามารถทำงานได้สบายบนเครื่องขนาด 1 GB ในขณะที่สแต็กที่หนักกว่า (ฐานข้อมูล หลายบริการ) ต้องการพื้นที่มากกว่านั้น ให้เลือกขนาด VPS ตามภาระงาน ไม่ใช่ตาม Docker เอง

คอนเทนเนอร์ของฉันจะรอดจากการรีบูตหรือไม่?

รอดก็ต่อเมื่อคุณตั้งค่าให้เป็นเช่นนั้น เซอร์วิสของ Docker จะถูกเปิดใช้งานตอนบูตตามขั้นตอนด้านล่างนี้ และคอนเทนเนอร์ที่เริ่มด้วย '--restart unless-stopped' (หรือตั้งนโยบายนั้นใน Compose) จะกลับมาทำงานเองโดยอัตโนมัติ หากไม่มีนโยบาย restart คอนเทนเนอร์จะยังคงหยุดทำงานอยู่หลังรีบูต

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง