ในโลกของ 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>"
คำสั่งนี้จะสร้างไฟล์ 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
ขั้นตอนที่ 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
ขั้นตอนที่ 4: กำหนดค่า Docker Client
สุดท้าย หลังจากติดตั้งใบรับรองแล้ว เราสามารถเข้าสู่ระบบ Docker Registry ผ่าน HTTPS ดังนี้
docker login https://<your-domain>:5000
ข้อควรระวัง:
- การใช้ใบรับรอง Self-Signed อาจทำให้เกิดความเสี่ยงด้านความปลอดภัย ควรใช้ด้วยความระมัดระวัง
- ตรวจสอบให้แน่ใจว่าพอร์ต 5000 ของ Registry เปิดอยู่และสามารถเข้าถึงได้
สรุป
การเปิดใช้งาน Docker Registry ด้วยใบรับรอง Self-Signed บน macOS นั้นไม่ซับซ้อนอย่างที่คิด เพียงทำตามขั้นตอนข้างต้น คุณก็สามารถสร้าง Private Registry ที่ปลอดภัยและใช้งานได้ฟรี
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้ที่ต้องการใช้งาน Docker Registry แบบง่ายๆ
อ้างอิง: https://stackoverflow.com/a/56412353
Top comments (0)