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.ioของดิสโทรล้าหลังกว่าและไม่มีปลั๊กอิน Compose - เปิดเฉพาะพอร์ตที่คุณเผยแพร่ออกไป ตัวเลือก
-p 8080:80ของคอนเทนเนอร์จะเปิดพอร์ต 8080 ควรใช้ Docker ร่วมกับ ไฟร์วอลล์ UFW - เลือกขนาดเครื่องตามคอนเทนเนอร์ ไม่ใช่ตามตัว Docker เองซึ่งใช้ทรัพยากรน้อยมาก
ขั้นตอนถัดไป
เมื่อติดตั้ง Docker แล้ว คุณสามารถโฮสต์บริการเองได้แทบทุกอย่าง ดู การโฮสต์หลายบริการเองด้วย IP เดียว หรือตัวอย่างการสร้างด้วย Docker จริงๆ เช่น เซิร์ฟเวอร์ RustDesk สำหรับควบคุมเดสก์ท็อประยะไกล และ ระบบตรวจสอบ Uptime Kuma หากต้องการนำโดเมนและ HTTPS มาไว้ด้านหน้า ดู วิธีตั้งค่า nginx reverse proxy
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ