我試圖通過docker進行部署。我使用以下工作流程:由於存在很多圖像,所以使用docker push進行部署很慢
- 構建本地
- 把我的形象泊塢窗樞紐
- 在服務器上:拉圖像
- 在服務器上:啓動圖像
但碼頭推動需要永遠。有30個圖像,它必須遍歷每一個,並說「圖像已經存在」。有什麼辦法可以加快速度嗎?
或者,我是否應該使用不同的流程進行部署?
我試圖通過docker進行部署。我使用以下工作流程:由於存在很多圖像,所以使用docker push進行部署很慢
但碼頭推動需要永遠。有30個圖像,它必須遍歷每一個,並說「圖像已經存在」。有什麼辦法可以加快速度嗎?
或者,我是否應該使用不同的流程進行部署?
如果您使用的是本地註冊表,我們最近添加了一個redis緩存,該緩存有助於加快速度。關於如何做到這一點的細節註冊表GitHub的頁面
https://github.com/docker/docker-registry
一邊推還需要時間對新的圖像上,拉的速度非常快,因爲所有層都在Redis的緩存。
爲什麼在每個部署中推送更多/大部分圖像層的最可能原因是您沒有優化Docker文件。這是一個不錯的介紹http://blog.tutum.co/2014/10/22/how-to-optimize-your-dockerfile/。
無論如何,對我而言,我使用類似ansible的東西在服務器上構建圖像。 –
如果您正在推進AWS ECR,就像我一樣,可能是您的本地需要重新啓動的docker。見線約AWS ECR緩慢:
https://forums.aws.amazon.com/thread.jspa?threadID=222834
這可能會影響到其他平臺以及。無論如何,在Mac上1.12.1左右似乎有一些緩慢的問題會隨着Docker的重啓而消失。
如何檢查已經推送的圖像?現在每個圖像層需要2-3秒,所以即使它們全部已經被緩存,也需要永久保存。 –
這對我們的設置是即時的。如果你存儲到s3,redis是有幫助的。我對dockerhub沒有太多的瞭解,所以我不能說這些。 – seanmcl
Docker-registry已被棄用,以支持docker分發。它用新的API設計取代了docker/docker-registry項目https://github.com/docker/distribution – calebeaires