docker 自建證書 私有 registry 搭建
阿新 • • 發佈:2019-01-22
docker registry 搭建,之前寫過一篇部落格是基於非證書registry,用於快速測試環境,今天寫一個關於搭建自建證書搭建registry,以做筆記
- 首先建立存放證書的資料夾cert,並在資料夾下生成證書,這裡我用的域名是hub.mydocker.com,命令如下:
mkdir cert
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout domain.key \
-x509 -days 365 -subj '/CN=hub.mydocker.com/' -out domain.crt
- 生成使用者名稱密碼,這裡假設使用者名稱為testuser,密碼為testpassword
mkdir auth
docker run \
--entrypoint htpasswd \
registry:2 -Bbn testuser testpassword > htpasswd
- 停止registry(如果在執行),並重啟registry
docker stop registry
docker rm registry
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v /home/docker/data/registry:/var/lib/registry \
-v /home/docker/auth: /auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /home/docker/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
- 如果之前有設定daemon.json請刪除,然後複製domain.crt到docker證書目錄
mkdir -p /etc/docker/certs.d/hub.mydocker.com:5000
cp domain.crt /etc/docker/certs.d/hub.mydocker.com:5000/ca.crt
- 在hosts檔案中配置域名hub.mydocker.com,如果伺服器有配置域名就不必操作
192.168.9.201 hub.mydocker.com
- 好了,這時用剛才的使用者名稱登入試試
docker login hub.mydocker.com:5000
- 這時會提示輸入使用者名稱,密碼,輸入如果提示Login Succeeded,則大功告成
- 其他服務按照相同方式,拷貝證書檔案,修改hosts,刪除daemon.json(如果有)即可
最後貼張Login Succeeded的圖片