Docker學習思考

2021-08-02 03:28:34 字數 982 閱讀 2929

在上述的五步中,1和5的耗時較短,整個持續整合主要耗時集中在中間的3個步驟,也就是docker build、docker push、docekr pull這樣還是無法達到順滑的極致要求,下來我們來分析下build、push、pull的耗時和解決方法:

docker registry公升級到v2後加入了很多安全相關檢查,在v2中的映象的儲存格式變成了gzip ,映象在壓縮過程中占用的時間也比較多。我們簡單分解一下docker push的流程。

buffer to disk,將該層檔案系統壓縮成本地的乙個臨時檔案

上傳檔案至registry

本地計算壓縮包digest,刪除臨時檔案,digest傳給registry

registry計算上傳壓縮包digest並進行校驗

registry將壓縮包傳輸至後端儲存檔案系統

重複1-5直至所有層傳輸完畢

計算映象的manifest並上傳至registry,重複 3-5

這樣的設計導致push會很慢,如果採用官方的dockerhub,需要考慮docker build一節中提及的網路方面影響,dockerhub公有映象庫還需考慮安全方面的因素。

同時docker和registry設定了過多的安全防範措施(如雙向證書認證等),主要是為了防止在公有雲的環境下映象的偽造和越權獲取。但是在乙個可信的環境內,如果build和push過程都是自己掌控,很多措施都是多餘的。

docker pull 映象的速度對服務啟動速度至關重要,好在registry v2後可以並行pull了,速度有了很大改善。但是依然有一些小的問題影響了啟動的速度:

docker實現了底層技術的創新,它的出現將開發者從與系統的糾纏中釋放了出來,但是阻礙企業使用docker的問題是容器的大規模部署、管理問題和缺少企業級容器工具及系統。

映象建立完成後,需要把它發布到測試和生產環境。因為docker占用資源小,在單個伺服器上部署成百上千個容器也不足為奇。這個階段中如何更合理地使用docker也是乙個難點,開發團隊需要考慮如何打造乙個可伸縮擴充套件的分發環境。

docker學習 docker容器

1.容器檢視 已經啟動的容器 docker ps 所有的容器 docker ps a2.啟動容器相關引數 互動式容器 退出時容器處於停止狀態,無法使用 docker run it name mynginx nginx bin bash 退出當前容器 exit 守護式容器 埠88是宿主機的對映埠 do...

docker學習 docker安裝

1 解除安裝已經存在的docker 執行命令 yum remove docker docker client docker client latest docker common docker latest docker latest logrotate docker logrotate docke...

Docker學習 Docker映象

一 列出映象 命令 docker images optsions repositort a 標識列出所有 f 寫過濾條件 no trunc 不截斷id q 只顯示唯一id repository是倉庫名字 registry代表的是大庫 tag標籤名字 對應版本,id唯一標識 庫名字 標籤 對應乙個id...