国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 用容器重新定義 Java 虛擬化部署

用容器重新定義 Java 虛擬化部署

時間:2023-07-01 04:15:02 | 來源:網(wǎng)站運營

時間:2023-07-01 04:15:02 來源:網(wǎng)站運營

用容器重新定義 Java 虛擬化部署:容器是一個用于構建、分發(fā)、運行分布式應用的開源平臺。容器化的應用可以在開發(fā)者的電腦上運行,并能夠被部署到生產(chǎn)的云環(huán)境中,容器正以前所未有的方式在持續(xù)集成和持續(xù)部署中發(fā)揮著巨大作用。希云認為:在未來的工作中,容器這個平臺是每個開發(fā)者都應該熟悉的。

開源 Java 項目把容器帶給 Java 開發(fā)者,后面會解釋為什么容器對 Java 開發(fā)者那么重要,引導大家在容器中安裝并部署 Java 應用,并讓大家看到如何把容器集成到構建流程中。


容器快速指南

容器有它自己的術語,這些術語會在本文中反復用到,請先花一些時間去熟悉它們:

Docker 簡介

在二十多年前,軟件應用曾經(jīng)是非常龐大并且復雜的,會被部署在大型的計算機上。在 Java 的世界里邊,我們開發(fā)的企業(yè)軟件包( EAR )中,包含企業(yè) JavaBean( EJB ) 和 web 組件( WAR ),然后會部署在大型應用服務器上。為了能盡量有效地利用這些大型計算機上的資源,我們會盡最大能力去設計這些應用。


在 21 世紀早期,隨著云計算的出現(xiàn),開發(fā)者們開始使用虛擬機以及服務器集群,去擴展應用以滿足需求。要以虛擬化的方式部署應用,應用必須被設計得與傳統(tǒng)方式有所不同,輕量級,面向對象的應用成為新標準。我們學會了把軟件做成各種能互聯(lián)的服務集合,將各組件盡可能地設計成無狀態(tài)。可擴展架構的概念和實現(xiàn)都發(fā)生了變化,不再是依賴于單臺大型計算機的垂直擴展,開發(fā)者和架構師開始思考以水平擴展方式實現(xiàn):如何把單個應用部署到數(shù)個輕量級的計算機上。


容器的出現(xiàn)使虛擬化更向前邁進了一步,提供了一個輕量級的層,處于應用和所依賴的硬件中間,容器把應用當作是宿主系統(tǒng)的一個進程來運行。圖一對比了傳統(tǒng)虛擬機和容器。


圖1 虛擬機與容器的比較

傳統(tǒng)的虛擬機會在宿主系統(tǒng)運行著一個虛擬機監(jiān)視器,并在虛擬機中運行著一個完整的客戶系統(tǒng)( GuestOS ),應用依賴的所有包都在客戶系統(tǒng)中。

相反地, 容器有個容器引擎,也是一個運行在宿主系統(tǒng)的守護進程。容器引擎把容器中的系統(tǒng)調(diào)用,翻譯成宿主系統(tǒng)的原生調(diào)用。一個 Docker 鏡像,作為容器的創(chuàng)建模板,只是包含了操作系統(tǒng)的最小層,以及僅僅是應用所需要的依賴庫。

大家看起來感覺這些差異似乎不大,但實際上卻是天壤之別。容器的優(yōu)勢很大一部分都是在這點體現(xiàn)出來的!


理解進程虛擬化

我們仔細分析一下虛擬機中的操作系統(tǒng),我們會留意到虛擬機中的資源,例如 CPU 和內(nèi)存。但當我們運行一個容器,我們會直接看到宿主機上的資源。我把容器看成是進程級的虛擬化平臺,而不是系統(tǒng)級的虛擬化平臺?;旧?,應用是作為一個獨立的自包含進程運行在宿主機上,容器通過借助著 Linux 上幾個強大的組件,實現(xiàn)了隔離性,確保了每個進程都是操作系統(tǒng)上的獨立進程。

因為容器化的應用與宿主機上的進程運行方式類似,所以設計上也和虛擬機中的應用不同。舉個例子說,我們通常會在一個虛擬機上運行 Tomcat 和 MySQL 數(shù)據(jù)庫,但容器的實踐中,我們會把 app 服務器與數(shù)據(jù)庫分別部署,各自運行在不同的容器中。這樣讓容器更好地管理宿主系統(tǒng)上的獨立單元,這意味著要更有效率地使用容器,我們需要以適當?shù)牧6仍O計應用,例如微服務的方式。


Docker 中的微服務

簡單來說,微服務是一種可以促進系統(tǒng)模塊化的架構方式。在微服務架構中,復雜的應用以更小的獨立進程組成,各個進程有一個或多個特定的功能,應用與語言無關的API和其他進程通信。

微服務是通過粒度非常小,高度解耦的服務集合,來提供單一或多個相關聯(lián)的功能。例如,如果你正在管理著一個用戶中心和購物車,那你很可能是選擇把它們設計成獨立的服務,如用戶中心服務和購物車服務;而不是把兩個模塊打成一個包作為一個服務運行。更具體來說,使用微服務意味著構建 web services,而且是最常見的 RESTful web service ,并把它們按功能分組。在 Java 中,我們會把這些服務打成 WAR 包,并部署到一個容器中,例如 Tomcat,然后運行 Tomcat 和容器中的服務。


安裝容器

在我們深入研究容器之前,先讓我們把本地環(huán)境搭建起來。如果你正在使用 Linux 系統(tǒng),那非常好,你可以直接安裝并運行容器。對于那些使用 Windows 或者 Mac 的用戶來說,容器可以通過一個叫 Docker Toolbox 的工具來使用,這個工具會安裝一個虛擬機(使用 Oracle 的 Virtual Box ),這個虛擬機中會運行著包含容器守護進程的 Linux 系統(tǒng)。我們可以使用容器客戶端把指令發(fā)送給守護進程處理,注意,你不需要管理這個虛擬機,只要安裝這個工具并執(zhí)行容器命令行工具即可。

開始從 Mac, Windows,或 Linux 相應的文檔里下載 Docker。

我的電腦是 Mac,所以我下載并運行了 Mac 版的 Docker Toolbox 安裝包,之后我運行了 Docker Quickstart 終端,這樣會啟動一個 Virtual Box 鏡像和一個命令行終端。這個安裝過程與 Windows 下的基本相同,更多請參考 Windows 版的文檔。


DockerHub: Docker的鏡像倉庫

我們開始使用容器之前,先花幾分鐘去訪問一下 cSphereHub ,這個鏡像倉庫。瀏覽一下 cSphereHub ,你會發(fā)現(xiàn)上邊有數(shù)個鏡像,精挑細選的微鏡像。如果使用 cSphere 管理平臺,添加微鏡像倉庫后,倉庫里面包含了 docker 官方的一些鏡像。鏡像倉庫中有基礎系統(tǒng),如 Alpine、 Ubuntu,或者 Java 相關的如 Tomcat、 jdk、 jre 等等。你還可以發(fā)現(xiàn)幾乎所有流行的應用上邊都會有,包括 MySQL、 MongoDB、 Neo4j、 Redis、 Memcached、 Postgres、 Nginx、 Node.js、 WordPress、 PHP、 Perl、 Ruby 等等。在你打算自行構建一個新鏡像之前,請確認 cSphereHub 或者 DockerHub 上有沒有。

作為一個練習,我們運行一個簡單的 CentOS 鏡像,在 Docker Toolbox 的命令行中輸入:


sh $ docker run -it centos這個容器命令是你與Docker守護進程的主要接口。run 指令告訴容器去下載并運行指定的鏡像(假設在本地還沒有這個鏡像)。又或者,你可以用 pull 命令直接下載一個鏡像但不運行它。有兩個參數(shù):<code>i</code> 會讓Docker用交互模式運行,<code>t</code> 會讓它創(chuàng)建一個TTY終端。注意非官方的鏡像使用既定的格式"用戶名/鏡像名",而官方的鏡像會省略用戶名,所以我們只需要指定"<code>centos</code>"來運行鏡像即可。另外,也可以在鏡像名后加“:版本號”指定版本號,例如,<code>centos:7</code>。每個鏡像默認使用的都是最新版本,當前CentOS最新版本號是7.


在運行<code>$ docker run -it centos </code>之后,你會見到Docker開始下載這個鏡像,完成后會見到類似以下的輸出:


sh $ docker run -it centos[root@dcd69de89aad /]#因為我們用了交互模式去運行,它顯示了一個 root 用戶的 shell 命令提示符。查看一下這個系統(tǒng),然后使用<code>exit</code>退出。


可以用<code>docker images</code>命令來查看系統(tǒng)中已下載好的鏡像:


sh $ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEjava 8 5282faca75e8 4 weeks ago 817.6 MBtomcat latest 71093fb71661 8 weeks ago 347.7 MBcentos latest 7322fbe74aa5 11 weeks ago 172.2 MB你可以看到我已經(jīng)有了最新版的CentOS、Tomcat 和 Java 8。

關鍵詞:虛擬,部署,定義,容器,重新

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉