Docker registry搭建
簡介
搭建local的registry
搭建基于domain的registry
假定Docker registry采用的域名為myregistrydomain.com
峭拘,且本地有名為redis
的docker image, 通過配置基于domain的registry峰尝,希望將本地的redis
上傳到搭建好的docker registry掸驱。
基于自簽名(Self-Signed)證書的registry
-
生成自簽名的證書
mkdir -p certs openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt
請務(wù)必在提示輸入CN(Common Name)的時候街望,輸入正確的域名姓惑,這里是
myregistrydomain.com
抵知,否則堤魁,證書將是無效的耕魄。 -
采用TLS啟動docker registry
docker run -d -p 5000:5000 --restart=always --name registry \ -v `pwd`/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ registry:2
-
查看下是否有錯
# docker logs registry
正常情況下晨川,應(yīng)該是沒有錯誤信息的证九。
-
讓Docker信任此自簽名證書
cp certs/domain.crt /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
-
重啟Docker
service restart docker
-
測試是否有效
docker tag redis myregistrydomain.com:5000/redis docker push myregistrydomain.com:5000/redis
正常情況下,應(yīng)該可以看到image被上傳了共虑,否則則會提示出錯信息愧怜。
本文基于較老的版本搭建,對于現(xiàn)有的Docker版本還有待驗證看蚜,不排除會有問題