- Portainer เป็นอินเทอร์เฟซกราฟิกบนเว็บที่รวมศูนย์การบริหารจัดการ Docker, Kubernetes และ Swarm โดยไม่ต้องพึ่งพาคอนโซลเพียงอย่างเดียว
- คุณสมบัตินี้ช่วยให้สามารถปรับใช้แอปพลิเคชันโดยใช้เทมเพลต และจัดการวอลุ่ม เครือข่าย และสแต็กของ Compose ได้ด้วยภาพ
- สามารถติดตั้งได้โดยใช้คำสั่ง Docker โดยตรง หรือผ่านไฟล์การกำหนดค่า YAML เพื่อการควบคุมที่มากขึ้น
หากคุณเคยลองใช้งานเซิร์ฟเวอร์ส่วนตัว ไม่ว่าจะเป็นการตั้งค่าเซิร์ฟเวอร์ที่บ้านบน Raspberry Pi, NAS หรือเครื่องเฉพาะ คุณจะรู้ว่าDocker เป็นเครื่องมือที่ทรงพลังอย่างไรก็ตาม การต้องต่อสู้กับคำสั่งในเทอร์มินัลตลอดเวลานั้นอาจจะน่าเบื่อ โดยเฉพาะอย่างยิ่งเมื่อคุณเริ่มใช้งานคอนเทนเนอร์หลายสิบตัวพร้อมกัน นี่คือจุดที่Portainer เข้ามาช่วย ซึ่งเป็นอินเทอร์เฟซแบบกราฟิกบนเว็บที่ช่วยให้คุณหยุดพิมพ์คำสั่งมากมายและเริ่มจัดการทุกอย่างได้ด้วยการคลิกเพียงไม่กี่ครั้ง
โดยพื้นฐานแล้ว Portainer ทำหน้าที่เป็นแผงควบคุมแบบรวมศูนย์ ไม่ใช่การแจกจ่าย Kubernetes แต่เป็นซอฟต์แวร์โอเพนซอร์สที่รวมศูนย์การจัดการโครงสร้างพื้นฐานที่มีอยู่ ไม่ว่าคุณจะใช้เวอร์ชัน Community Edition (CE) ฟรี หรือเวอร์ชันองค์กรแบบชำระเงิน เป้าหมายก็เหมือนกัน คือการทำให้การปรับใช้ การกำหนดค่า และการแก้ไขปัญหาแอปพลิเคชันของคุณเป็นเรื่องง่ายและมองเห็นได้ชัดเจนยิ่งขึ้นสำหรับทุกคน ตั้งแต่ผู้เชี่ยวชาญด้าน DevOps ไปจนถึงผู้ที่ชื่นชอบการทำ DIY ทางดิจิทัล
หลายคนสงสัยว่า GUI จำเป็นจริงหรือในเมื่อเรามีเทอร์มินัลอยู่แล้ว คำตอบสั้นๆ คือ สำหรับการใช้งานในชีวิตประจำวัน มันสะดวกอย่างเหลือเชื่อ Docker เป็นโซลูชันการจำลองเสมือนแบบเบาที่ใช้เคอร์เนล Linux ในการแยกกระบวนการโดยไม่ต้องใช้เครื่องเสมือนขนาดใหญ่ ในขณะที่ Portainer ช่วยให้เรามองเห็นทรัพยากรได้ทันทีคุณสามารถดูได้อย่างรวดเร็วว่าคอนเทนเนอร์ใดทำงานได้ดี คอนเทนเนอร์ใดล้มเหลว และใช้ CPU หรือ RAM ไปเท่าไหร่ โดยไม่ต้องเรียกใช้คำสั่งตรวจสอบที่ซับซ้อน
หนึ่งในคุณสมบัติที่ทรงพลังที่สุดคือการจัดการDocker Compose stacksซึ่งช่วยให้คุณสามารถเปิดใช้งานบริการที่เชื่อมต่อกันหลายรายการโดยใช้ไฟล์ YAML เพียงไฟล์เดียว นอกจากนี้ยังช่วยลดความซับซ้อนในการจัดการpersistent volumes และ virtual networksป้องกันไม่ให้คุณลบข้อมูลสำคัญโดยไม่ตั้งใจเมื่อลบ container สำหรับผู้ที่กำลังเรียนรู้ มันเป็นเครื่องมือที่สมบูรณ์แบบเพราะช่วยให้คุณสามารถทดลองใช้เทมเพลตที่กำหนดไว้ล่วงหน้าและปรับใช้บริการยอดนิยมได้ในเวลาเพียงไม่กี่วินาที
การติดตั้งบนเซิร์ฟเวอร์ NAS และสภาพแวดล้อมภายในบ้าน
หากคุณมี NAS จากแบรนด์ต่างๆ เช่น Synology, QNAP หรือ Asustor คุณโชคดีแล้ว เพราะโดยปกติแล้ว Docker จะมาในรูปแบบแอปพลิเคชันที่สามารถติดตั้งได้จากร้านค้าซอฟต์แวร์ของแต่ละแบรนด์ (เช่น ใน QNAP จะเรียกว่าContainer Station ) เมื่อติดตั้ง Docker engine แล้ว คุณก็สามารถใช้งาน Portainer ได้ แม้ว่าอุปกรณ์ NAS บางรุ่นจะมีฟังก์ชันนี้ในตัว แต่โดยทั่วไปแล้วมักจะใช้งานผ่าน SSH มากกว่า
ในการติดตั้งผ่านทางบรรทัดคำสั่งในสภาพแวดล้อมเหล่านี้ โดยปกติจะใช้คำสั่ง docker runจำเป็นอย่างยิ่งที่จะต้องแมปซ็อกเก็ต Docker (/var/run/docker.sock) เพื่อให้ Portainer สามารถ สื่อสารกับเอนจิ้นโฮสต์รายละเอียดสำคัญอย่างหนึ่งในระบบบางระบบ เช่น Asustor คือ อาจเกิดข้อผิดพลาดด้านสิทธิ์การเข้าถึงได้ ในกรณีนั้น ให้เรียกใช้คำสั่งต่อไปนี้ sudo chmod 666 /var/run/docker.sock วิธีนี้มักจะแก้ปัญหาได้โดยการอนุญาตให้คอนเทนเนอร์เข้าถึงซ็อกเก็ตได้โดยไม่มีข้อจำกัด
การปรับใช้ขั้นสูงด้วย Docker Compose
สำหรับผู้ที่ต้องการระบบที่มีความเป็นมืออาชีพและดูแลรักษาง่ายยิ่งขึ้น ทางออกที่ดีที่สุดคือการใช้ไฟล์ compose.yamlแตกต่างจากคู่มือฉบับเก่า คู่มือฉบับนี้ไม่จำเป็นต้องระบุรหัสเวอร์ชันอีกต่อไป เนื่องจากข้อกำหนดสมัยใหม่ไม่คำนึงถึงรหัสเวอร์ชัน อย่างไรก็ตาม ขอแนะนำอย่างยิ่งให้ระบุรหัสเวอร์ชันด้วย ตรึงรูปภาพไว้กับเวอร์ชันเฉพาะ (ตัวอย่างเช่น 2.40.0) แทนที่จะใช้ป้ายกำกับ latestจึงช่วยป้องกันไม่ให้การอัปเดตอัตโนมัติไปทำลายการตั้งค่าของคุณ
ตัวอย่างของการกำหนดค่าที่แข็งแกร่ง ได้แก่ การใช้ วอลุ่มที่มีชื่อว่า portainer_dataสิ่งนี้สำคัญมาก เพราะสถานะทั้งหมดของแอปพลิเคชัน (ผู้ใช้ ปลายทาง และการกำหนดค่า) อยู่ในโฟลเดอร์นี้ /data ของคอนเทนเนอร์ หากคุณใช้ bind-mount แบบชั่วคราวแล้วลบออก คุณจะสูญเสียอินสแตนซ์ทั้งหมด นอกจากนี้ การ mount ซ็อกเก็ต Docker ใน ก็เป็นแนวปฏิบัติที่ดีเช่นกัน โหมดอ่านอย่างเดียว (:ro)เนื่องจาก Portainer ควบคุมทุกอย่างผ่าน API และไม่จำเป็นต้องเขียนข้อมูลไปยังซ็อกเก็ตของระบบโฮสต์โดยตรง
เริ่มต้นใช้งานและการตั้งค่าความปลอดภัย
เมื่อคอนเทนเนอร์เริ่มทำงานแล้ว โดยปกติคุณสามารถเข้าถึงได้ผ่านพอร์ต 9443 (HTTPS) หรือ 9000 (HTTP) โดยป้อนที่อยู่ IP ของเซิร์ฟเวอร์ของคุณลงในเบราว์เซอร์ ครั้งแรกที่คุณเข้าสู่ระบบ ระบบจะขอให้คุณสร้างผู้ดูแลระบบด้วยรหัสผ่านที่รัดกุม โปรดทราบว่ากระบวนการตั้งค่าเริ่มต้นนี้มีเวลาหมดอายุ 5 นาทีหากคุณเกินเวลานี้ คุณจะต้องรีสตาร์ทคอนเทนเนอร์เพื่อลองเข้าสู่ระบบอีกครั้ง
ในสภาพแวดล้อมการใช้งานจริง การเปิดเผย Portainer สู่โลกอินเทอร์เน็ตโดยตรงนั้นมีความเสี่ยง จึงควรวางไว้หลัง... รีเวิร์สพร็อกซี เช่น Traefikด้วยวิธีนี้ คุณจึงสามารถ ผสานรวม Docker, Traefik และ Portainer เข้าด้วยกันเป็นสแต็กที่สมบูรณ์แบบ เพื่อจัดการใบรับรอง TLS ของ Let's Encrypt และเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังพอร์ตภายใน 9000 ของ Portainer ทำให้คุณสามารถเข้าถึงได้ผ่านโดเมนระดับมืออาชีพ (เช่น portainer.tuweb.comโดยไม่ต้องเปิดพอร์ตแปลก ๆ ในไฟร์วอลล์ของคุณ
การจัดการคอนเทนเนอร์และปลายทางระยะไกล
ภายในแผงควบคุมนั้น สภาพแวดล้อม 'โลคอล' คือที่ที่สิ่งมหัศจรรย์เกิดขึ้น จากที่นี่คุณสามารถดึงอิมเมจจาก Docker Hubสร้างคอนเทนเนอร์ตั้งแต่เริ่มต้น หรือจัดการเครือข่ายและวอลุ่มได้ หนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดคือการเข้าถึงคอนโซลคอนเทนเนอร์ซึ่งช่วยให้คุณเข้าสู่เทอร์มินัลของแอปพลิเคชันที่กำลังทำงานอยู่ได้โดยไม่ต้องออกจากเบราว์เซอร์ของคุณ
แต่ Portainer ไม่ได้จำกัดอยู่แค่เซิร์ฟเวอร์เดียว ด้วยการใช้Edge Agentคุณสามารถเชื่อมต่อโหนดระยะไกลหลายโหนดเข้ากับอินสแตนซ์ Portainer ส่วนกลางเพียงตัวเดียวได้ เอเจนต์นี้เป็นคอนเทนเนอร์ขนาดเล็กที่คุณติดตั้งบนเซิร์ฟเวอร์อื่นๆ และจะเปิดอุโมงค์ขาออกไปยังเซิร์ฟเวอร์หลัก ทำให้คุณสามารถจัดการ Docker Swarm และ Portainer Edgeเพื่อควบคุมคลัสเตอร์ Swarm หรือ Kubernetes จากจุดควบคุมเดียว โดยไม่คำนึงถึงตำแหน่งที่ตั้งทางกายภาพของเครื่องเหล่านั้น
Portainer เปลี่ยนแปลงประสบการณ์การใช้งาน Docker จากการจัดการที่ยุ่งยากผ่านเทอร์มินัล ไปสู่ระบบนิเวศแบบภาพที่ควบคุมอิมเมจ สแต็ก และวอลุ่มได้อย่างง่ายดาย ไม่ว่าจะเป็นการติดตั้งด้วยคำสั่งง่ายๆ หรือการตั้งค่าสภาพแวดล้อมระดับมืออาชีพด้วย Compose และ Traefik เครื่องมือนี้รับประกันการจัดการคอนเทนเนอร์ที่มีประสิทธิภาพ ปรับขนาดได้ และที่สำคัญที่สุดคือเข้าถึงได้ง่ายขึ้นสำหรับผู้ใช้ทุกคน





