- Portainer เป็นอินเทอร์เฟซกราฟิกบนเว็บที่รวมศูนย์การบริหารจัดการ Docker, Kubernetes และ Swarm โดยไม่ต้องพึ่งพาคอนโซลเพียงอย่างเดียว
- คุณสมบัตินี้ช่วยให้สามารถปรับใช้แอปพลิเคชันโดยใช้เทมเพลต และจัดการวอลุ่ม เครือข่าย และสแต็กของ Compose ได้ด้วยภาพ
- สามารถติดตั้งได้โดยใช้คำสั่ง Docker โดยตรง หรือผ่านไฟล์การกำหนดค่า YAML เพื่อการควบคุมที่มากขึ้น
หากคุณเคยลองใช้งานเซิร์ฟเวอร์ส่วนตัว ไม่ว่าจะเป็นการตั้งค่าเซิร์ฟเวอร์ที่บ้านบน Raspberry Pi, NAS หรือเครื่องเฉพาะ คุณจะรู้ว่า Docker เป็นเครื่องมือที่โหดร้ายอย่างไรก็ตาม การต้องต่อสู้กับเทอร์มินัลอยู่ตลอดเวลานั้นอาจจะน่าเบื่อ โดยเฉพาะอย่างยิ่งเมื่อคุณเริ่มมีคอนเทนเนอร์จำนวนมากทำงานพร้อมกัน นี่คือจุดที่ [โซลูชัน/เครื่องมือ] เข้ามามีบทบาท Portainer คืออินเทอร์เฟซกราฟิกบนเว็บ ซึ่งช่วยให้คุณไม่ต้องพิมพ์คำสั่งมากมายอีกต่อไป และเริ่มจัดการทุกอย่างได้ด้วยการคลิกเพียงไม่กี่ครั้ง
โดยพื้นฐานแล้ว Portainer ทำหน้าที่เป็นแผงควบคุมแบบรวมศูนย์ ไม่ใช่การแจกจ่าย Kubernetes แต่เป็น... ซอฟต์แวร์โอเพนซอร์สที่รวมศูนย์การจัดการ ของโครงสร้างพื้นฐานที่มีอยู่ ไม่ว่าคุณจะใช้เวอร์ชัน Community Edition (CE) ฟรี หรือเวอร์ชัน Enterprise แบบชำระเงิน เป้าหมายก็เหมือนกัน คือทำให้การติดตั้ง การกำหนดค่า และการแก้ไขปัญหาแอปพลิเคชันของคุณง่ายขึ้น มองเห็นได้ชัดเจนและเข้าใจง่ายกว่ามาก เหมาะสำหรับทุกกลุ่มผู้ใช้งาน ตั้งแต่ผู้เชี่ยวชาญด้าน DevOps ไปจนถึงผู้ที่ชื่นชอบการทำสิ่งต่างๆ ด้วยตนเองทางดิจิทัล
หลายคนสงสัยว่า GUI จำเป็นจริงหรือในเมื่อเรามีเทอร์มินัลอยู่แล้ว คำตอบสั้นๆ คือ สำหรับการใช้งานในชีวิตประจำวัน มันสะดวกอย่างเหลือเชื่อ ในขณะที่ Docker เป็นโซลูชันการจำลองเสมือนแบบเบาที่ใช้เคอร์เนล Linux เพื่อแยกกระบวนการโดยไม่ต้องใช้เครื่องเสมือนขนาดใหญ่ Portainer ก็ให้เราได้... สามารถมองเห็นทรัพยากรได้ทันทีคุณสามารถดูได้อย่างรวดเร็วว่าคอนเทนเนอร์ใดทำงานได้ปกติ คอนเทนเนอร์ใดล้มเหลว และใช้ CPU หรือ RAM ไปเท่าใด โดยไม่ต้องเรียกใช้คำสั่งตรวจสอบที่ซับซ้อน
หนึ่งในหน้าที่ที่มีประสิทธิภาพมากที่สุดคือการบริหารจัดการ กองของ Docker Composeซึ่งช่วยให้สามารถตั้งค่าบริการที่เชื่อมต่อกันหลายบริการโดยใช้ไฟล์ YAML เพียงไฟล์เดียว นอกจากนี้ยังช่วยลดความซับซ้อนในการบริหารจัดการอีกด้วย วอลุ่มถาวรและเครือข่ายเสมือนช่วยป้องกันไม่ให้คุณลบข้อมูลสำคัญโดยไม่ตั้งใจขณะลบคอนเทนเนอร์ สำหรับผู้ที่กำลังเรียนรู้ นี่คือเครื่องมือที่สมบูรณ์แบบ เพราะมันช่วยให้ ทดลองใช้เทมเพลตที่กำหนดไว้ล่วงหน้าโดยสามารถใช้งานบริการยอดนิยมได้ภายในเวลาเพียงไม่กี่วินาที
การติดตั้งบนเซิร์ฟเวอร์ NAS และสภาพแวดล้อมภายในบ้าน
หากคุณมี NAS จากแบรนด์อย่าง Synology, QNAP หรือ Asustor คุณโชคดีแล้ว เพราะโดยปกติแล้ว Docker จะมาในรูปแบบแอปพลิเคชันที่สามารถติดตั้งได้จากร้านค้าแอปพลิเคชันของแต่ละแบรนด์ (เช่น ใน QNAP จะเรียกว่า...) สถานีคอนเทนเนอร์เมื่อติดตั้ง 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 เข้าด้วยกันเป็นสแต็กที่สมบูรณ์แบบ para gestionar los certificados TLS de Let’s Encrypt y redirigir el tráfico al puerto interno 9000 de Portainer, permitiéndote acceder mediante un dominio profesional (como portainer.tuweb.comโดยไม่ต้องเปิดพอร์ตแปลก ๆ ในไฟร์วอลล์ของคุณ
การจัดการคอนเทนเนอร์และปลายทางระยะไกล
Dentro del panel, el entorno ‘local’ es donde ocurre la magia. Desde aquí puedes hacer ดึงอิมเมจจาก Docker Hubสร้างคอนเทนเนอร์ตั้งแต่เริ่มต้น หรือจัดการเครือข่ายและวอลุ่ม หนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดคือการเข้าถึง คอนโซลคอนเทนเนอร์ซึ่งช่วยให้คุณสามารถเข้าสู่เทอร์มินัลของแอปพลิเคชันที่กำลังทำงานอยู่ได้โดยไม่ต้องออกจากเบราว์เซอร์
แต่ Portainer ไม่ได้จำกัดอยู่แค่เซิร์ฟเวอร์เดียว ผ่านทาง เอจ เอเจนต์คุณสามารถเชื่อมต่อโหนดระยะไกลหลายโหนดเข้ากับอินสแตนซ์ Portainer ส่วนกลางเพียงตัวเดียวได้ เอเจนต์เป็นคอนเทนเนอร์ขนาดเล็กที่ติดตั้งบนเซิร์ฟเวอร์อื่นๆ และเปิดอุโมงค์ขาออกไปยังเซิร์ฟเวอร์หลัก ทำให้คุณสามารถ จัดการ Docker Swarm และ Portainer Edge เพื่อควบคุมคลัสเตอร์ Swarm หรือ Kubernetes จากจุดควบคุมเดียว โดยไม่คำนึงถึงตำแหน่งที่ตั้งทางกายภาพของเครื่องเหล่านั้น
Portainer เปลี่ยนแปลงประสบการณ์การใช้งาน Docker จากการจัดการที่ยุ่งยากผ่านเทอร์มินัล ไปสู่ระบบนิเวศแบบภาพที่ควบคุมอิมเมจ สแต็ก และวอลุ่มได้อย่างง่ายดาย ไม่ว่าจะเป็นการติดตั้งด้วยคำสั่งง่ายๆ หรือการตั้งค่าสภาพแวดล้อมระดับมืออาชีพด้วย Compose และ Traefik เครื่องมือนี้รับประกันการจัดการคอนเทนเนอร์ที่มีประสิทธิภาพ ปรับขนาดได้ และที่สำคัญที่สุดคือเข้าถึงได้ง่ายขึ้นสำหรับผู้ใช้ทุกคน





