คู่มือการใช้งาน harbor สำหรับผู้ใช้งาน

Harbor คืออะไร

เป็นโครงการ Open Source สำหรับทำ Container Registry โดยตัวมันเองมันความสามารถหลายอย่างไม่ว่าจะเป็น role-based access control หรือจะเป็นสแกน Container Images หาช่องโว่ความปลอดภัย หรือจะเป็นรองรับการ Replicate ไปไว้ Container Registry อีกที่ก็ยังได้ เป็นต้น

1. การเข้าสู่ระบบ Harbor จาก Docker Client ทำได้หลายวิธีตามตัวอย่างต่อไปนี้:

วิธีที่ 1: Login โดยใช้คำสั่งปกติ
$ docker login registry.sawhr.com 
Username: myusername
Password: mypassword
Login Succeeded
วิธีที่ 2: Login โดยระบุ Username และ Password ในคำสั่ง
$ docker login -u myusername -p mypassword registry.sawhr.com 
Login Succeeded
วิธีที่ 3: Login โดยใช้ Password จาก stdin (แนะนำสำหรับความปลอดภัยสูงสุด)
$ echo mypassword | docker login -u myusername --password-stdin registry.sawhr.com
Login Succeeded

หมายเหตุ: หากพบข้อผิดพลาด "x509: certificate signed by unknown authority" ให้นำ Root CA ของเครื่อง Harbor มาติดตั้งที่เครื่องที่จะ Login

2. การ Tag Container Images

การ Tag Container Images หมายถึงการกำหนดชื่อหรือแท็กให้กับ Docker image เพื่อให้สามารถระบุและใช้ได้ง่ายในภายหลัง โดยทั่วไปแล้วเมื่อเราดาวน์โหลดหรือสร้าง image ในเครื่องของเรา เราจะต้องทำการตั้งชื่อหรือแท็กให้เหมาะสมก่อนที่จะทำการ push ขึ้นไปยัง Harbor หรือ Docker registry อื่นๆ

วิธีการใช้คำสั่ง docker tag

คำสั่ง docker tag ใช้ในการสร้างชื่อใหม่หรือแท็กให้กับ image ที่มีอยู่แล้ว โดยมีรูปแบบการใช้งานดังนี้:

$ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG]: คือชื่อและแท็กของ image ที่ต้องการทำการ tag ใหม่ (ถ้าไม่ระบุ TAG ระบบจะใช้ "latest" โดยอัตโนมัติ)

  • TARGET_IMAGE[:TAG]: คือชื่อใหม่และแท็กที่เราต้องการให้กับ image ที่เรา tag

ตัวอย่าง
  1. สมมุติว่าเรามี image ที่ชื่อว่า nginx:alpine บนเครื่องของเรา ซึ่งเป็น image ที่ใช้ Nginx เวอร์ชัน Alpine

  2. เราต้องการจะ tag image นี้ใหม่ เพื่อที่จะ push ขึ้นไปยัง Harbor registry ที่อยู่ที่ registry.sawhr.com ในโปรเจค devops ชื่อของ image ที่เราจะใช้ใน Harbor จะเป็น mynginx:alpine

เราสามารถใช้คำสั่ง:

$ docker tag nginx:alpine registry.sawhr.com/devops/mynginx:alpine

คำสั่งนี้จะทำการ tag image nginx:alpine ใหม่ให้กลายเป็น registry.sawhr.com/devops/mynginx:alpine

อธิบายคำสั่ง:
  • nginx:alpine: คือ SOURCE_IMAGE (ชื่อเดิมของ image ที่เราใช้ในเครื่อง)

  • registry.sawhr.com/devops/mynginx:alpine: คือ TARGET_IMAGE ที่เราจะใช้ในการ push ขึ้นไปยัง Harbor registry

3. การ Push Container Images ขึ้น Harbor

การ Push Container Images ขึ้น Harbor คือการอัพโหลดหรือส่ง Docker image ที่เราได้สร้างหรือแก้ไขไว้ ไปเก็บใน Harbor Container Registry เพื่อให้สามารถเข้าถึงและใช้งานได้จากที่อื่นหรือแชร์ให้คนอื่นใช้งานได้ง่ายๆ

วิธีการใช้คำสั่ง docker push

คำสั่ง docker push ใช้ในการส่ง Docker image จากเครื่องของเราไปยัง Docker registry (เช่น Harbor) ซึ่งในที่นี้เราจะอัพโหลด image ไปที่ registry.sawhr.com ในโปรเจค devops และมีชื่อว่า mynginx:alpine

$ docker push registry.sawhr.com/PROJECT/REPOSITORY[:TAG]
  • registry.sawhr.com: คือ URL ของ Harbor registry ที่เราใช้งาน

  • PROJECT: คือชื่อโปรเจคที่เราต้องการอัพโหลด image ไปยังโปรเจคนี้

  • REPOSITORY: คือชื่อของ image ที่เราต้องการจะอัพโหลด

  • TAG (ไม่จำเป็น): คือแท็กของ image เช่น latest, alpine, หรือชื่อเวอร์ชันของ image นั้นๆ ถ้าไม่ระบุจะใช้ latest โดยอัตโนมัติ

ตัวอย่าง
  1. สมมุติว่าเราได้สร้าง image ใหม่หรือทำการ tag image ไว้แล้วในเครื่องชื่อว่า nginx:alpine และเราได้ทำการ tag ใหม่เป็น registry.sawhr.com/devops/mynginx:alpine

  2. ตอนนี้เราต้องการจะ push image ที่เรา tag ขึ้นไปยัง Harbor registry ที่โปรเจค devops

เราสามารถใช้คำสั่งดังนี้:

$ docker push registry.sawhr.com/devops/mynginx:alpine

คำสั่งนี้จะทำการ push image mynginx:alpine ไปยัง Harbor registry ที่โปรเจค devops และทำให้ image นี้พร้อมใช้งานจากทุกที่ที่มีการเข้าถึง Harbor registry นี้

4. การ Pull และ Run Container Images จาก Harbor

การ Pull และ Run Container Images จาก Harbor เป็นขั้นตอนที่ช่วยให้เราสามารถดึง Docker image ที่เก็บไว้ใน Harbor มาใช้งานบนเครื่องของเรา และสร้าง Container จาก image ที่เราได้ดึงมา เพื่อให้เราสามารถทำงานกับแอปพลิเคชันใน container ได้

การ Pull Image จาก Harbor

การ Pull image หมายถึงการดาวน์โหลด Docker image จาก Harbor registry มายังเครื่องของเรา เพื่อให้เราสามารถนำไปใช้งานต่อไปได้

$ docker pull registry.sawhr.com/PROJECT/REPOSITORY[:TAG]
  • registry.sawhr.com: คือ URL ของ Harbor registry ที่เราต้องการดึง image มาจาก

  • PROJECT: คือชื่อโปรเจคที่เก็บ image ไว้

  • REPOSITORY: คือชื่อของ image ที่เราต้องการดึงมา

  • TAG (ไม่จำเป็น): คือแท็กของ image เช่น latest, alpine หรือเวอร์ชันต่างๆ (ถ้าไม่ระบุ จะดึงเวอร์ชัน latest โดยอัตโนมัติ)

ตัวอย่าง

สมมุติว่าเราต้องการดึง Docker image ที่ชื่อว่า mynginx:alpine จากโปรเจค devops ใน Harbor registry registry.sawhr.com

เราสามารถใช้คำสั่ง:

$ docker pull registry.sawhr.com/devops/mynginx:alpine

คำสั่งนี้จะทำการ ดึง image mynginx:alpine จาก Harbor registry มายังเครื่องของเรา

การ Run Container จาก Image ใน Harbor

หลังจากที่เรา Pull image มาแล้ว เราสามารถใช้คำสั่ง docker run เพื่อสร้าง Container จาก image ที่เราได้ดึงมา และให้มันเริ่มทำงานทันที

$ docker run registry.sawhr.com/PROJECT/REPOSITORY[:TAG]
  • registry.sawhr.com: คือ URL ของ Harbor registry

  • PROJECT: คือชื่อโปรเจคที่เก็บ image ไว้

  • REPOSITORY: คือชื่อของ image ที่เราต้องการใช้

  • TAG: คือแท็กของ image (ถ้าไม่ระบุจะใช้ latest โดยอัตโนมัติ)

ตัวอย่าง

หลังจากที่เราได้ Pull image mynginx:alpine มาแล้ว ตอนนี้เราต้องการจะ Run image นี้ในรูปแบบของ Container โดยใช้คำสั่ง:

$ docker run registry.sawhr.com/devops/mynginx:alpine

คำสั่งนี้จะทำการ Run container โดยใช้ image mynginx:alpine จาก Harbor registry และ container นี้จะเริ่มทำงานในเครื่องของเรา


การเข้าสู่ระบบ Harbor Console

1. การเข้าสู่ระบบ Harbor Console

Harbor Console เป็นอินเทอร์เฟซกราฟิกที่ใช้สำหรับจัดการ Container Images และ Projects ภายในระบบ Harbor Container Registry

ขั้นตอนการเข้าสู่ระบบ
  1. เปิดเว็บเบราว์เซอร์แล้วไปที่ URL ของ Harbor  https://registry.sawhr.com

  2. กรอกข้อมูลบัญชีและรหัสผ่าน

  3. กดปุ่ม Sign in

🔹 ภาพประกอบ: หน้าจอ Login

 

2. แท็บ Projects

แท็บ Projects ใช้สำหรับจัดกลุ่ม Container Images ที่อัปโหลดขึ้นไปบน Harbor โดยแต่ละ Project สามารถกำหนดสิทธิ์การเข้าถึงได้

การเข้าถึงแท็บ Projects
  1. หลังจากเข้าสู่ระบบ Harbor แล้ว ให้คลิกที่แท็บ Projects

  2. จะแสดงรายการ Projects ทั้งหมดที่มีอยู่

  3. สามารถคลิกเข้าไปใน Project ที่ต้องการ เพื่อดูรายละเอียดและจัดการ Images

🔹 ภาพประกอบ: หน้าจอ Projects

ฟีเจอร์สำคัญของ Projects
  • ดูรายการ Container Images ในโปรเจค

  • อัปโหลด (Push) และ ดาวน์โหลด (Pull) Images

  • กำหนดสิทธิ์ให้สมาชิก (Users & Roles)

  • ตั้งค่าการสแกนความปลอดภัยของ Images

3. การใช้งานแท็บ Logs

แท็บ Logs ใช้สำหรับตรวจสอบกิจกรรมต่างๆ ที่เกิดขึ้นในระบบ เช่น

  • การเข้าสู่ระบบของผู้ใช้

  • การสร้าง โปรเจค

  • การอัปโหลด (Push) หรือ ดาวน์โหลด (Pull) Container Images

การเข้าถึงแท็บ Logs
  1. หลังจากเข้าสู่ระบบ Harbor แล้ว ให้คลิกที่ Logs

  2. ระบบจะแสดงรายการกิจกรรมทั้งหมดที่เกิดขึ้นภายในระบบ

  3. สามารถใช้ ตัวกรอง (Filters) เพื่อค้นหาข้อมูลที่ต้องการ

🔹 ภาพประกอบ: หน้าจอ Logs

ฟีเจอร์สำคัญของ Logs
  • ตรวจสอบการกระทำของ ผู้ใช้ (เช่น login/logout)

  • ตรวจสอบการกระทำเกี่ยวกับ Container Images (เช่น push/pull/delete)

  • ตรวจสอบ การตั้งค่าระบบ

Did you find this article useful?