我有一個安裝部署與碼頭工人認爲工作原理如下:泊塢窗推送需要很長的時間
- 建立我的開發機器上的圖像通過Dockerfile
- 按下圖像註冊表(我試過既泊塢窗樞紐和Quay.io)
- 這一形象拉到部署服務器,並重新啓動容器。
我希望儘快完成這些步驟,但需要花費很長時間。即使對於尺寸適中的圖像(750MiB,包括標準ubuntu
和朋友),稍作修改後,需要部署17分鐘。我優化了我的Dockerfile
中的項目順序,因此大多數時候它實際上都會緩存圖像。這似乎沒有什麼區別。
主要的罪魁禍首是docker push
一步。對於Docker Hub和Quay.io來說,推送圖像需要很長的時間。在我做的一個簡單的基準測試中,我執行了兩次,一次執行docker push
,因此所有以前的圖像都已經在註冊表中。所以,我只看到這幾行:
...
bf84c1d841244f: Image already pushed, skipping
...
但是,如果我的時間推,性能是可怕的。推到Quay.io需要3.5分鐘當所有的圖像都已經在服務器上!推到碼頭工人樞紐約需12分鐘!
因爲很多人在生產中使用Docker,所以在某些地方顯然有些問題,這些時間與持續交付完全相反。
如何讓這個運行更快?其他人也看到這種表現嗎?它是否與註冊表服務有關,或者與我的本地機器有關?
我使用在Mac OS X
恐怕這個答案會導致幾個混淆。關於「控制我自己的數據」和「依靠外部服務」的觀點是無關緊要的。所有代碼完全在雲上運行,而我的源代碼仍然在Github上。其次,我不明白雲提供商如何擁有快速的本地**註冊管理機構?據我所知,這些只是致力於單個公司/賬戶的註冊管理機構。所以你建議這個性能問題的根源在於Quay和Docker沒有以足夠的容量運行他們的服務? – user1496984