Podman คืออะไร และวิธีติดตั้งบน Cloud Server
Podman คือเครื่องมือรันคอนเทนเนอร์ที่ใช้คำสั่งเหมือน Docker แต่ไม่มีบริการเบื้องหลังที่รันด้วยสิทธิ์สูงสุด และรันคอนเทนเนอร์ด้วยสิทธิ์ผู้ใช้ธรรมดาได้ จึงลดความเสี่ยงด้านความปลอดภัยลงอย่างมีนัยสำคัญ
- หมวดหมู่
- Container และ Virtualization
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Podman คืออะไร
Docker ทำงานผ่านบริการเบื้องหลังที่รันด้วยสิทธิ์สูงสุดของระบบ ใครที่เรียกใช้บริการนี้ได้จึงมีสิทธิ์เทียบเท่าผู้ดูแลระบบไปโดยปริยาย ซึ่งเป็นประเด็นที่ทีมความปลอดภัยยกขึ้นมาบ่อย
Podman ไม่มีบริการเบื้องหลังแบบนั้น คำสั่งที่เรียกจะสร้างกระบวนการของคอนเทนเนอร์ขึ้นตรง ๆ ภายใต้ผู้ใช้ที่สั่ง ทำให้คอนเทนเนอร์ที่ถูกเจาะยังถูกจำกัดอยู่ในสิทธิ์ของผู้ใช้คนนั้นเท่านั้น
คำสั่งส่วนใหญ่เหมือน Docker จนตั้งนามแฝงแทนกันได้ และรันอิมเมจมาตรฐานเดียวกันได้ทั้งหมด ทีมที่คุ้นกับ Docker จึงย้ายมาได้โดยแทบไม่ต้องเรียนใหม่
ความสามารถเด่นของ Podman
ไม่มีบริการเบื้องหลังที่รันด้วยสิทธิ์สูงสุด
ลดพื้นที่เสี่ยงของระบบลงอย่างมีนัยสำคัญ
รันด้วยสิทธิ์ผู้ใช้ธรรมดาได้
คอนเทนเนอร์ที่ถูกเจาะยังถูกจำกัดอยู่ในสิทธิ์ของผู้ใช้คนนั้น
คำสั่งเหมือน Docker
ทีมย้ายมาได้โดยแทบไม่ต้องเรียนคำสั่งใหม่
จัดกลุ่มคอนเทนเนอร์เป็น Pod ได้
ใช้แนวคิดเดียวกับ Kubernetes ทำให้ย้ายขึ้นคลัสเตอร์ภายหลังง่ายขึ้น
ผูกกับ systemd ได้โดยตรง
ให้คอนเทนเนอร์เริ่มเองเมื่อเครื่องบูตเหมือนบริการปกติของระบบ
ใช้ Podman ทำอะไรได้บ้าง
- องค์กรที่มีนโยบายความปลอดภัยไม่ให้มีบริการที่รันด้วยสิทธิ์สูงสุดโดยไม่จำเป็น
- เซิร์ฟเวอร์ที่รันหลายบริการและต้องแยกสิทธิ์ของแต่ละงานให้ชัดเจน
- ทีมที่ใช้ Red Hat หรือ Rocky Linux ซึ่งมี Podman มาเป็นค่ามาตรฐาน
- ระบบที่เตรียมย้ายขึ้น Kubernetes ในอนาคต
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นรันคอนเทนเนอร์ไม่กี่ตัว | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำหลายบริการบนเครื่องเดียว | 4 vCPU | 8 GB | NVMe 100 GB |
| ใช้งานหนักคอนเทนเนอร์จำนวนมากและงานบิลด์ | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 200 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Podman บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Rocky Linux 9, AlmaLinux 9 หรือ Ubuntu Server 24.04 LTS
- เคอร์เนลที่รองรับการทำงานแบบไม่ใช้สิทธิ์สูงสุด
- พื้นที่ดิสก์สำหรับอิมเมจและข้อมูลของคอนเทนเนอร์
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Podman
sudo apt update sudo apt -y install podman podman --version - 2
รันคอนเทนเนอร์แรกด้วยผู้ใช้ธรรมดา
ไม่ต้องใช้ sudo และไม่ต้องเพิ่มผู้ใช้เข้ากลุ่มพิเศษใด ๆ
podman run -d --name web -p 8080:80 docker.io/library/nginx:alpine podman ps - 3
ตั้งให้คอนเทนเนอร์เริ่มเองเมื่อเครื่องบูต
สร้างไฟล์บริการของ systemd จากคอนเทนเนอร์ที่รันอยู่ แล้วเปิดใช้งานในระดับผู้ใช้
podman generate systemd --name web --files --new mkdir -p ~/.config/systemd/user mv container-web.service ~/.config/systemd/user/ systemctl --user enable --now container-web.service sudo loginctl enable-linger $USER - 4
ใช้ไฟล์ Compose เดิมได้
ติดตั้งเครื่องมือที่อ่านไฟล์ Compose แล้วสั่งงานผ่าน Podman เพื่อใช้ไฟล์ที่มีอยู่เดิมต่อได้
sudo apt -y install podman-compose podman-compose up -d - 5
ตั้งนามแฝงให้ใช้คำสั่งเดิม
echo "alias docker=podman" >> ~/.bashrc source ~/.bashrc - 6
วาง Nginx รับ HTTPS ด้านหน้า
ให้คอนเทนเนอร์ฟังพอร์ตสูงภายในเครื่อง แล้วให้ Nginx รับ HTTPS จากภายนอกและส่งต่อเข้ามา
การรันแบบไม่ใช้สิทธิ์สูงสุดผูกพอร์ตต่ำกว่า 1024 ไม่ได้ตามค่าเริ่มต้น ให้ใช้พอร์ตสูงแล้ววาง Reverse Proxy ด้านหน้า ซึ่งเป็นแนวปฏิบัติที่ควรทำอยู่แล้ว
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Reverse Proxy |
| 8080 | TCP | พอร์ตของคอนเทนเนอร์ภายในเครื่อง |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- รันคอนเทนเนอร์ด้วยผู้ใช้ธรรมดาแทนผู้ดูแลระบบทุกครั้งที่ทำได้
- ดึงอิมเมจจากแหล่งที่เชื่อถือได้และระบุแท็กเวอร์ชันชัดเจน
- ไม่เปิดพอร์ตของคอนเทนเนอร์สู่อินเทอร์เน็ตโดยตรง
- อัปเดตอิมเมจตามรอบเพราะช่องโหว่อยู่ในชั้นระบบปฏิบัติการของอิมเมจด้วย
ทำไมควรรัน Podman บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ใช้แทน Docker บน Cloud Server ได้โดยไม่ต้องเปลี่ยนไฟล์ Compose ที่มีอยู่
เหมาะกับองค์กรที่ผ่านการตรวจสอบด้านความปลอดภัยและถูกทักเรื่องบริการที่รันด้วยสิทธิ์สูงสุด
รันหลายบริการแยกสิทธิ์กันบนเครื่องเดียว ช่วยคุมค่าใช้จ่ายสำหรับทีมเล็ก
คำถามที่พบบ่อยเกี่ยวกับ Podman
Podman ใช้แทน Docker ได้เลยไหม
สำหรับงานส่วนใหญ่ใช้แทนได้ทันทีเพราะคำสั่งและอิมเมจเหมือนกัน สิ่งที่ต้องปรับคือส่วนที่พึ่งซ็อกเก็ตของ Docker โดยตรง เช่น เครื่องมือ CI บางตัว ซึ่งมีวิธีตั้งค่าให้ใช้ร่วมกันได้
รันแบบไม่ใช้ root มีข้อจำกัดอะไร
ผูกพอร์ตต่ำกว่า 1024 ไม่ได้ตามค่าเริ่มต้น และความสามารถด้านเครือข่ายบางอย่างมีข้อจำกัด แต่ทั้งสองข้อแก้ได้ด้วยการวาง Reverse Proxy ด้านหน้า ซึ่งเป็นสิ่งที่ควรทำอยู่แล้วในระบบจริง
ใช้ไฟล์ docker-compose.yml เดิมได้ไหม
ได้ผ่านเครื่องมือที่อ่านไฟล์ Compose แล้วสั่งงาน Podman ให้ ซึ่งรองรับความสามารถที่ใช้กันทั่วไปครบ แต่ถ้าไฟล์ใช้ความสามารถเฉพาะของ Docker บางอย่าง อาจต้องปรับเล็กน้อย
ทางเลือกอื่นที่คล้ายกับ Podman
แอปอื่นในหมวด Container และ Virtualization
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Podman ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด