Docker Registry คือพื้นที่ไว้เป็นแหล่งรวมและแจกจ่ายไฟล์ Images ต่างๆทั้ง Base Images และ Images ที่ได้รับการพัฒนาหรือปรับแต่งจากผู้พัฒนาด้วยกระบวนการ Pull/Push Images โดยที่ Docker Registry จะมีการให้บริการอยู่สองรูปแบบคือ

  1. การให้บริการแบบ Public Docker Registry ที่เรียกกันว่า DockerHub ซึ่งทุกคนที่ใช้งาน Docker สามารถเข้าถึงได้อ่านขั้นตอนการใช้งานเพิ่มเติมได้จาก เรียกใช้ Docker Image จาก Docker Hub กัน
  2. การให้บริการเแบบ Private Docker Registry ซึ่งเป็นการให้บริการแบบปิดที่จัดทำขึ้นภายในองค์กร กลุ่มบุคคคล หรือใช้งานส่วนตัว Private Docker Registry นั้นก่อนใช้งานต้องมีการติดตั้งลงบนเครื่อง Server ที่ต้องการก่อนการใช้งานสามารถอ่านข้อมูลการติดตั้งเพิ่มเติมได้จาก ติดตั้ง Docker Registry ไว้ใช้เอง

การที่จะรักษาความปลอดภัยให้กับ Private Docker Registry จะใช้ Key ในการระบุตัวตน Private Key และ Public Key รวมถึงรหัสผ่านและเข้าถึงด้วย https เพื่อความปลอดภัย มาเริ่มกันเลย…

ติดตั้ง apache2-utils ด้วยคำสั่ง

sudo apt-get install apache2-utils

สร้างการยืนยันตัวตนโดยใช้ htpasswd ด้วยคำสั่ง

htpasswd -c ~/my-registry.htpasswd USERNAME

โดยทำการเปลี่ยนค่า USERNAME เป็นชื่อผู้ใช้งานที่ต้องการและทำการใส่รหัสผ่าน

สร้าง self-signed SSL certificate ให้ Docker Registry ใช้งานด้วยคำสั่ง

mkdir ~/certs

sudo docker run --rm -e COMMON_NAME=10.0.2.15 -e KEY_NAME=my-registry -v ~/certs:/certs centurylink/openssl

สามารถตั้งค่า IP Address ของ Docker Registry ได้ตามต้องการด้วยการเปลี่ยนชุดตัวเลขหลัง COMMON_NAME=

สั่งให้ Docker Registry ทำงานด้วยคำสั่ง

sudo docker run -d --expose=5000 --name=registry registry

echo 'DOCKER_OPTS="--insecure-registry 10.0.2.15:5000"' | sudo tee -a /etc/default/docker

sudo docker start registry

สั่งให้ Docker Registry ทำงานบน Port 8080 เพื่อให้สามารถใช้งานการระบุตัวตนได้ด้วยคำสั่ง

sudo docker run -d -p 8080:8080 -e PUBLIC_IP_ADDR=10.0.2.15 --link registry:registry -v ~/certs/my-registry.crt:/etc/ssl/certs/docker-registry -v ~/certs/my-registry.key:/etc/ssl/private/docker-registry -v ~/docker-registry.htpasswd:/etc/nginx/docker-registry.htpasswd centurylinklabs/nginx-ssl-proxy

ระบุชุดตัวเลข IP Address ให้ตรงกับที่ตั้งไว้ตอนแรกด้วยการใส่ชุดตัวเลขหลัง PUBLIC_IP_ADDR=
ทำการทดสอบโดยการใช้คำสั่ง

curl -u user:password --cacert my-registry.crt https://10.0.2.15:8080

จะปรากฏข้อความ

"\"docker-registry server\""

Comments are closed.