Docker以當前形式將任何docker命令放入工作隊列,並按順序(同步)執行一個。這意味着如果您創建的單線程API(node.js)合併了Docker命令(如站起來的容器或下載映像),它將很快得到備份並且超載泊塢窗工作隊列。我已經得到了很多。問題是我如何重新建模docker以異步處理命令?如何異步運行Docker命令?
我不關心如何獲取有關命令狀態的更新,甚至無法提供完成時的回調函數。我的主要目標是能夠快速調用docker以高容量站立或執行命令,而不會影響API的響應時間。
的幾點思考 -
- 規模水平與更多的虛擬機
不有效地利用每個虛擬機。昂貴。不雅的解決方案。
- 在可用守護進程中初始化更多docker守護進程和平衡任務。
仍然不是真正異步的。此外,各種碼頭守護程序無法共享資源,如圖像。所以如果你有10個docker守護進程想要運行一個Ubuntu容器,那麼你將需要10個獨立的ubuntu鏡像,這將佔用原始ubuntu鏡像大小的10倍。
- 異步泊塢窗客戶端 - https://github.com/tulayang/asyncdocker 我一直無法得到這個啓動和運行,甚至在NIM泊塢窗容器。另外它是用NIM編寫的。也不完全清楚,這就是我正在尋找的,或者它只是在docker中引用異步http請求。
什麼泊塢窗命令你發現是同步?我以前沒有遇到過這個問題。 – Matt
@Matt它最突出的是站起來的容器。 'docker run -it -d ubuntu' 如果您在腳本中創建以下命令鏈,可以看到影響。 1.站起來的容器 2.在該容器內執行命令 3。停止並移除該容器 然後運行一個循環以高容量執行此腳本,並且它將很快得到備份,響應時間相當快速地延長。 –