Private Registry inside Ruk-Com Cloud PaaS


Docker solution ได้รับการออกแบบมาเพื่อความสะดวกสบายในการกระจายแอปพลิเคชัน โดยใช้เทมเพลตที่รวดเร็วและเบา ซึ่งสามารถเรียกใช้โปรเจกต์ของคุณได้เกือบทุกที่ ดังนั้นจึงเป็นเทคโนโลยีที่สมบูรณ์แบบสำหรับนักพัฒนาและผู้ดูแลระบบที่ต้องการเร่งความเร็วในการส่ง workflow และหลีกเลี่ยงปัญหาการเปลี่ยนแปลงที่เกิดขึ้นตลอดเวลา

การจัดการ Docker image ด้วยตนเอง จำเป็นต้องมี registry ที่เหมาะสมโดย Dockerized solutions ส่วนใหญ่จะถูกเก็บไว้ใน registry สาธารณะเพื่อให้ทุกคนสามารถใช้งานได้ แต่อย่างไรก็ตามบางครั้งมีความจำเป็นต้องซ่อนเนื้อหาที่เก็บข้อมูลของคุณจากส่วนอื่นๆ เช่น ในกรณีที่มีรหัสเกี่ยวกับกรรมสิทธิ์หรือข้อมูลที่เป็นความลับ ซึ่งจุดประสงค์นี้คุณสามารถสร้าง registry ส่วนตัวแยกเองได้

ดังนั้นมาดูวิธีการทำที่ Ruk-Com Cloud Paltform เพียงใช้เวลาไม่กี่นาทีโดยทำตามขั้นตอนต่อไป:

หลังจากนั้นคุณสามารถ deploy image ที่เพิ่มจาก private registry ของคุณไปยัง Ruk-Com Cloud PaaS ได้อย่างง่ายดาย

Deploy Private Registry

เทมเพลตพื้นฐานสำหรับ private registry สามารถพบได้จาก open-source images ที่ Docker Hub ดังนั้นคุณสามารถทำการโฮสต์ภายในได้อย่างสะดวกสะบาย การติดตั้ง Ruk-Com Cloud สามารถกำหนดคอนเทนเนอร์ที่เหมาะสมเองได้:

1. เข้าสู่ระบบด้วยบัญชี Ruk-Com Cloud ของคุณและคลิกปุ่ม New Environment ที่ด้านบนของหน้าต่าง

เมื่อเปิด topology wizard ให้สลับไปที่แท็บ Docker จากนั้นคลิก Select Image

2. ใช้การค้นหาเพื่อหา image registry และเพิ่มเข้าไป

คลิก Next เพื่อดำเนินการ

เคล็ดลับ: คุณสามารถเลือก tag ที่ต้องการสำหรับ Docker image ได้ที่ด้านบนของเฟรมนี้หรือระหว่างขั้นตอนถัดไป

3. การ configurations อื่นๆทั้งหมดสำหรับ environment (การจำกัด disk, ชื่อ, ภูมิภาค, และอื่นๆ) ตามความต้องการของคุณ

คลิก Create และรอซักครู่เพื่อสร้าง environment

หมายเหตุ:
คำแนะนำด้านล่างนี้เหมาะสำหรับ registry เวอร์ชั่นใหม่ล่าสุด (เวอร์ชั่นที่เริ่มต้นด้วย tag 2.x ขึ้นไป) สำหรับ deprecated registries การกำหนดค่าและการทำงานร่วมกันอาจมีรายละเอียดที่แตกต่างกันไป

4. ตอนนี้คุณต้องกำหนดค่า entry point สำหรับการเข้าถึงจากภายนอก ซึ่งจะสร้างโดยใช้ Ruk-Com Cloud endpoints feature เพื่อที่จะเปิดเผยพอร์ตของคอนเทนเนอร์ 5000

เพิ่มเติม: อีกวิธีหนึ่งคุณสามารถแนบและทำงานผ่าน Public IP ได้ (ตัวเลือกที่ต้องชำระเงินเพิ่ม) โดยไม่ต้องกำหนดค่าใดๆเพิ่มเติม

คลิกที่ปุ่ม Setting ที่อยู่ถัดจาก environment ของคุณ จากนั้นเลือก Endpoints และกด Add เพื่อเพิ่ม enpoint ใหม่ภายในเฟรมที่เปิดอยู่ คุณสามารถใส่พารามิเตอร์ที่ต้องการโดยระบุหมายเลข private port 5000
ดังนั้นคุณจะได้รับผลลัพธ์คล้ายกับที่แสดงดังภาพด้านบนและตอนนี้คุณสามารถเริ่มเติม registry กับ Docker image ได้แล้ว

Add Image to Registry

การเพิ่ม Docker template ลงใน registry ของคุณสามารถทำได้โดยการนำ image ภายนอกจาก central hub registry ส่งไปยังที่จัดเก็บส่วนตัวของเรา private repository (อย่างไรก็ตามคุณสามารถดำเนินการเองได้ที่เครื่องของคุณ) โดยจะต้องทำการปรับเปลี่ยนการกำหนดค่าในเครื่องของคุณเล็กน้อย เพื่อให้สามารถใช้งานได้อย่างถูกต้อง

1 เริ่มต้นด้วยการติดตั้ง Docker CE (หากคุณยังไม่เคยทำมาก่อน) สามารถคลิกที่ลิงก์เพื่อดูคู่มือได้จากเว็บไซต์ที่เป็นทางการ

เพิ่มเติม: ตรวจสอบให้แน่ใจว่า daemon ที่ติดตั้งเป็นเวอร์ชั่น 1.6.0 หรือใหม่กว่า (เนื่องจาก registry จะไม่สามารถใช้งานร่วมกับเวอร์ชั่นก่อนหน้าได้) คุณสามารถตรวจสอบเวอร์ชั่น Docker daemon โดยรันคำสั่งต่อไปนี้ที่ terminal:

docker -v

2. จากนั้นเลือก image ที่คุณต้องการได้ที่ Docker Hub โดยใช้คำสั่ง pull และ tag เทมเพลตที่ได้รับเพื่อชี้ไปที่ private registry ของคุณเอง (หรือในกรณีของการใช้เทมเพลตในเครื่องของคุณ ให้ข้ามคำสั่งแรก)

docker pull {image} && docker tag {image} {entry_point}/{repository}

โดยที่:

  • {image} – ชื่อของ Docker template ที่คุณต้องการดึงและแท็ก (เช่น rukcom/apachephp)
  • {entry_point} – entry point ของ private registry เช่นปลายทาง endpoint (ถูกสร้างขึ้นที่ส่วนสุดท้าย Access URL) หรือที่อยู่ IP ภายนอก
  • {repository} – ชื่อของที่จัดเก็บ private registry ระยะไกล (เช่น apachephp) สำหรับ image ที่จะจัดเก็บ

3. รายละเอียดเพิ่มเติม – ในขณะที่ private registry ระยะไกลจำเป็นต้องรักษาความปลอดภัยร่วมกับ registry ด้วย TLS และคุณต้องแนบไฟล์รับรอง SSL certificate ที่เกี่ยวข้อง (เช่น server key และ domain certificate) ที่ออกโดย CA ของ registry คุณ

เคล็ดลับ: สามารถใช้ใบรับรอง self-signed certificate ที่ลงนามเองได้เช่นเดียวกัน ในกรณีนี้คุณจะต้องสั่งให้ Docker daemon เชื่อถือด้วยตนเอง

อย่างไรก็ตาม สำหรับวัตถุประสงค์ของการทดสอบคุณสามารถใช้การกำหนดค่าที่ค่อนข้างง่ายกว่าซึ่งช่วยให้สามารถข้ามข้อกำหนดนี้ – run registry ของคุณในโหมดที่ไม่ปลอดภัย ดังนั้นการสื่อสารทั้งหมดจะดำเนินการผ่าน HTTP ธรรมดา (ถึงแม้ว่าจะไม่แนะนำอย่างมากในขอบเขตของการใช้งาน)
โดยเพิ่มบรรทัดนี้ใน configuration file /etc/default/docker ที่ daemon ของคุณ (หรือไฟล์ที่คล้ายกันตามการกระจาย OS ของคุณ) เช่น ใช้ vim เพื่อแก้ไขด้วยการอนุญาตจาก sudo:

DOCKER_OPTS="--insecure-registry  {entry_point}"

อย่าลืม Save เพื่อบันทึกการเปลี่ยนแปลง

หมายเหตุ: ในกรณีที่ใช้ self-signed certificate หรือตัวเลือกที่ไม่ปลอดภัยจำเป็นจะต้องกำหนดค่าเพิ่มเติมเพื่อนำไปใช้กับ Docker daemon ทุกตัวซึ่งจำเป็นต้องเข้าถึง registry ของคุณ

4. ตอนนี้คุณสามารถรีสตาร์ท Docker daemon ในเครื่องของคุณและ push image ที่เตรียมไว้ไปยังที่เก็บระยะไกลของคุณ

sudo service docker restart
docker push  {entry_point}/ {repository}

หลังจากนั้น image ของคุณจะถูกอัปโหลดไปยัง registry (ซึ่งเวลาจะขึ้นอยู่กับขนาดของรูปภาพและความเร็วของอินเตอร์เน็ต) และจะพร้อมใช้งานทั้งหมด
ด้วยเหตุนี้คุณจึงสามารถ deploy ได้อย่างง่ายดายภายใน Ruk-Com Cloud PaaS ในลักษณะเดียวกับคำแนะนำวิธีการใช้งานข้างต้น

ในกรณีที่คุณประสบปัญหาใดๆในระหว่างการ deploy registry ของคุณหรือเพิ่ม image คุณสามารถขอความช่วยเหลือจากผู้เชี่ยวชาญทางเทคนิคได้ที่ Stackoverflow