在docker中,service是用于規定鏡像運行規則的服務;一個service只運行一個image并根據這個image實例化多個容器,以便讓主機分配更多的計算資源給服務進程。
本教程操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。
docker中service是什么意思
在發行的應用中,應用的不同組成部分被成為服務。例如,如果你有一個視頻分享站點,它可能有一個服務來保存應用數據到數據庫,一個服務來對用戶上傳的視頻后臺轉碼,一個服務用于前端顯示。
服務實際上只是“生產中的容器”。服務只運行一個映像,但它編碼了映像運行的方式 – 它應該使用哪些端口,應該運行多少個容器副本,以便服務具有所需的容量,等等。 擴展服務會更改運行該軟件的容器實例的數量,從而為流程中的服務分配更多計算資源。
service是用于規定鏡像運行規則的服務。
-
一個service只運行一個image
-
service可以根據一個image實例化多個容器,以便讓主機分配更多的計算資源給服務進程
-
service規定了鏡像運行的一些規則,例如應該開放哪個端口,需要把容器復制多少份以增加服務處理能力等等
如果把土地比作計算資源,容器比作別墅,那么service就相當于一個別墅區,為了滿足更多人購買別墅的需求,別墅區會建造更多的別墅(實例化更多容器),此時占用的土地也就越多(占用的計算資源),別墅區當然也會有自己的一套管理方法(規定鏡像運行的一些規則),例如建造多少個出口(暴露多少個端口給外界)
由于k8s 最小管理單位是pod ,建議一個pod 一個容器,那么假設有多個pod 一起對外提供相同的服務,那么統一的接口是什么呢?
service 其實就是這樣一個角色,當frontend 服務要請求backend服務的時候,f只認b的對外暴露的訪問接口,至于放到backend后面的哪個pod它并不關心,這個過程,有點想負載均衡,或者說是代理。
在分布式應用程序中,應用程序的不同部分被稱為“服務”。例如,如果有一個視頻共享網站,它可能包括一個用于將應用程序數據存儲在數據庫中的服務,一個在用戶上傳東西后在后臺進行視頻轉碼的服務,一個用于前端頁面的服務等等。
服務實際上只是“生產中的容器”。每個服務只運行一個映像,但它編碼了鏡像的運行方式 – 應該使用哪個端口,容器應運行多少個副本以滿足性能要求等等。 伸縮服務可以更改運行該軟件的容器實例的數量,從而為進程中的服務分配更多計算資源。
推薦學習:《docker視頻教程》