1. 程式人生 > >docker 自建證書 私有 registry 搭建

docker 自建證書 私有 registry 搭建

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的圖片

    這裡寫圖片描述