為什么使用 docker,項目為什么用docker

為什么要用docker做項目?你需要了解docker的優勢,根據項目的實際情況決定是否需要使用docker 。千萬不要“為了用而用docker”或者“跟風” 。編寫Dockerfile,將環境配置和應用程序依賴項打包到映像中;2.運行dockerbuild或使用容器鏡像服務構建Docker鏡像;3.運行dockerpull將鏡像文件拉至服務器,或者使用云容器實例;4.運行dockerexec來啟動容器實例,或者啟動云服務器 。
項目為什么用docker?
項目為什么要用docker,需要了解docker的優勢,結合項目的實際情況來決定是否需要使用docker,千萬不能“為了使用而使用”或者“跟風使用docker” 。使用docker是為了快速交付和傳統的虛擬機相比,docker具有所用的資源更少、性能更高、隔離級別更高、安全性方面也更強等特點,讓我們看看下面幾個場景,估計你會有更深的體會,
01.移植性更強相信開發人員都會遇到這樣的問題:代碼在本地跑的好好的,但是一發布到測試環境怎么就有問題了呢?通常我們的的代碼包需要依賴于環境中的很多因素,比如配置文件、依賴庫、中間件的配置等等,其中一項有問題可能都會導致我們代碼出現問題;對于開發人員來說,最希望的就是我們的代碼能夠一次創建,在任意地方都能運行 。
而使用docker之后,可以實現開發、測試、運維環境的標準化,鏡像文件直接做為交付物,避免了因為環境不同導致的各種問題,02.更容易擴展docker容器可以在任意平臺運行,不管是物理機還是虛擬機,不管是公有云還是私有云,甚至是個人電腦,所以我們的項目容易做遷移和擴展 。比如我們應用部署了兩臺機器,當我們想再擴展第三臺機器的時候,我們需要先搭建好代碼運行所需的環境,盡管虛擬機也有一些快速copy的技術,但是這個過程依然是很慢的,而且有些環境配置還容易出錯,而有了docker,只需要構建鏡像然后運行即可,非常方便快速,
因為docker快速的構建方式,也讓我們的項目可以實現自動且快速的擴容和縮容 。03.更加輕量在docker出現之前,通常會采用物理機上部署多臺虛擬機,每個應用都部署在一個虛擬機中;但是虛擬機非常的重,虛擬機的構建速度通常都是按照分鐘計算,占用的資源比較多,而docker的速度很快,秒級,并且使用的資源更少,性能更高;同樣一個物理機器,docker運行的鏡像數量遠多于虛擬機的數量 。
使用docker只是快速交付的一部分docker的優點這么多,那是不是用了docker之后,我們的交付速度更快了呢?我見過一個項目,他們號稱已經微服務化了,當然他們確實也做到了:把一個項目拆成了數個服務,每個服務在生產環境上部署了多套,算下來就是N*M個應用包(七八十個),都做了容器化...但是他們依然是人肉運維,也是就是他們每次提測和上線需要手動部署,沒有自動化測試和發布;生產環境發生問題的時候,需要手動去拿日志跟蹤問題,開發和運維依然是兩個團隊,甚至是所屬兩個不同的部門,溝通的成本很高;他們雖然實現了容器化,但其實并沒有實現快速交付,甚至比傳統的方式更慢了,
所以,不要為了docker而docker;如果你們的項目環境配置復雜,每來一個新人配置環境都需要一兩天;每次提測和上線,經常問題都是運行環境的問題;開發人員的開發環境不統一;開發能力強,運維能力弱的時候,甚至公司比較窮,想實現資源使用的最大化,都可以考慮使用docker,不過像要做微服務化 容器化,當容器集群規模比較大的時候,還需要工具做容器的自動化管理和編排,自動化測試及部署等等 。
為什么我們需要docker?

推薦閱讀