DEV Community

Warun C. ⚡
Warun C. ⚡

Posted on • Edited on

Docker Registry กับใบรับรอง Self-Signed: ไม่ยากอย่างที่คิด (สำหรับ macOS)

ในโลกของ Docker การมี Private Registry เป็นของตัวเองนั้นช่วยให้เราจัดเก็บและแชร์ Image ได้อย่างปลอดภัยและเป็นอิสระ แต่การใช้ใบรับรอง SSL จากผู้ให้บริการภายนอกอาจมีค่าใช้จ่ายสูง บทความนี้จะแนะนำวิธีง่ายๆ ในการเปิดใช้งาน Docker Registry โดยใช้ใบรับรอง Self-Signed บน macOS

ขั้นตอนที่ 1: สร้างใบรับรอง Self-Signed

เราสามารถใช้ OpenSSL ในการสร้างใบรับรองได้ดังนี้

openssl req -x509 -newkey rsa:4096 \
  -keyout ./certs/key.pem -out ./certs/cert.pem \ 
  -days 365 -nodes -subj "/CN=<your-domain>"
Enter fullscreen mode Exit fullscreen mode

คำสั่งนี้จะสร้างไฟล์ key.pem (private key) และ cert.pem (certificate)

ขั้นตอนที่ 2: กำหนดค่า Docker Registry

เราสามารถใช้ Docker Compose ในการจัดการ Docker Registry ได้ง่ายขึ้น โดยสร้างไฟล์ docker-compose.yml ดังนี้

version: "3.8"
services:
  registry:
    image: registry:2
    restart: always
    ports:
      - "5000:5000"
    volumes:
      - ./data:/var/lib/registry
    environment:
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/cert.pem
      REGISTRY_HTTP_TLS_KEY: /certs/key.pem
    volumes:
      - ./certs:/certs
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 3: ติดตั้งใบรับรองบน macOS

บน macOS เราจำเป็นต้องติดตั้งใบรับรองเข้ากับ Keychain เพื่อให้ Docker เชื่อถือใบรับรองนี้


openssl s_client -showcerts -connect <your-domain>:5000 </dev/null 2>/dev/null|openssl x509 -outform PEM > ~/.docker/certs.d/<your-domain>:5000/ca.pem

security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ~/.docker/certs.d/<your-domain>:5000/ca.pem

Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 4: กำหนดค่า Docker Client

สุดท้าย หลังจากติดตั้งใบรับรองแล้ว เราสามารถเข้าสู่ระบบ Docker Registry ผ่าน HTTPS ดังนี้

docker login https://<your-domain>:5000
Enter fullscreen mode Exit fullscreen mode

ข้อควรระวัง:

  • การใช้ใบรับรอง Self-Signed อาจทำให้เกิดความเสี่ยงด้านความปลอดภัย ควรใช้ด้วยความระมัดระวัง
  • ตรวจสอบให้แน่ใจว่าพอร์ต 5000 ของ Registry เปิดอยู่และสามารถเข้าถึงได้

สรุป

การเปิดใช้งาน Docker Registry ด้วยใบรับรอง Self-Signed บน macOS นั้นไม่ซับซ้อนอย่างที่คิด เพียงทำตามขั้นตอนข้างต้น คุณก็สามารถสร้าง Private Registry ที่ปลอดภัยและใช้งานได้ฟรี

หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้ที่ต้องการใช้งาน Docker Registry แบบง่ายๆ

อ้างอิง: https://stackoverflow.com/a/56412353

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay