2015-12-15 61 views
4

我想運行一個廣泛可用的私人docker註冊表。 因此,我將能夠推送和從其他服務器拉圖像。Docker使用自簽名證書的私人註冊表

我跟隨此教程:doc1 & doc2

我進行了3個步驟:首先 我創建我的證書和密鑰(如CNAME我填寫我的EC2主機名)

mkdir -p certs && openssl req \ 
    -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ 
    -x509 -days 365 -out certs/domain.crt 

比我創建我的碼頭註冊表,使用此密鑰。

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 

比我複製的domain.crt/etc/docker/certs.d/ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/ca.crt 內容我重新啓動我的搬運工:sudo service docker restart 當我試圖把圖像我得到以下錯誤:

unable to ping registry endpoint https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v0/ 
v2 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v2/: net/http: TLS handshake timeout 
v1 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v1/_ping: net/http: TLS handshake timeout 

我真的不知道我失蹤或做錯了什麼。有人可以幫幫我嗎。由於

+0

你可以捲曲你的端點嗎?或者在調試模式下重新啓動docker dameon?這兩個建議在https://github.com/docker/distribution/issues/1194 – VonC

回答

0

我不知道,如果你複製/粘貼您的PWD直接......但文件路徑應該是/ etc /泊塢窗/ certs.d

您目前有等/泊塢窗/ 證書.d /registry.ip:5000/domain.crt

+0

錯字,對不起,編輯。 – lvthillo

0

錯誤消息顯示「TLS握手超時」。這表明沒有任何進程在端口5000上進行偵聽(使用netstat進行檢查),或者端口從您嘗試推送映像的位置(AWS安全組中的開放端口)關閉。