亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Docker重新定義Java虛擬化部署

發布時間:2021-08-05 23:55:52 來源:億速云 閱讀:153 作者:chen 欄目:云計算

本篇內容主要講解“怎么用Docker重新定義Java虛擬化部署”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Docker重新定義Java虛擬化部署”吧!

Docker是一個用于構建、分發、運行分布式應用的開源平臺。Docker化的應用可以在開發者的電腦上運行,并能夠被部署到生產的云環境中,Docker正以前所未有的方式在持續集成和持續部署中發揮著巨大作用。希云認為:在未來的工作中,Docker這個平臺是每個開發者都應該熟悉的。

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

>>Docker技術快速指南
Docker有它自己的術語,這些術語會在本文中反復用到,請先花一些時間去熟悉它們:
Docker引擎(Docker engine):服務器上的一個守護進程,它是你和Docker應用與所依賴的操作系統的橋梁。
Dockerfile: 一個文本文件,內容是用于構建Docker鏡像的指令。
Docker 鏡像:  構建一個Dockerfile的產物,構建過程中執行Dockerfile中的命令,會生成一個鏡像。它首先會基于一個根系統(基礎鏡像)構建,然后安裝應用,接著執行一系列命令來準備啟動應用的環境。Docker鏡像作為Docker容器的基礎,相當于容器的一個靜態模塊。
Docker 容器: 一個Docker鏡像的運行時實例,Docker鏡像類似于模塊的概念(從Dockerfile構建,這個Dockerfile包含了根系統,應用以及一系列構建鏡像的命令),容器是那個鏡像的一個實際能運行的實例。
Docker 宿主: 一個物理機或者虛擬機,在此系統上運行著Docker引擎,維持著容器所依賴的Dockerhub。
DockerHub : 官方的Docker鏡像倉庫,把DockerHub想象為GitHub倉庫,對于Git來說是中央倉庫,DockerHub是官方保存及提供Docker鏡像的中央倉庫。
cSphereHub: 希云官方的Docker微鏡像倉庫,DockerHub中有非常多的鏡像,但cSphereHub中存放了精心挑選出來的,并精心制作的鏡像。

>>>Docker簡介


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

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

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

怎么用Docker重新定義Java虛擬化部署


圖 1. 虛擬機與Docker的比較

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

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

大家看起來感覺這些差異似乎不大,但實際上卻是天壤之別。Docker的優勢很大一部分都是在這點體現出來!

>>>理解進程虛擬化


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

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

>>>Docker中的微服務

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

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

>>>安裝Docker


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

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

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

>>>DockerHub: Docker的鏡像倉庫

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

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

```sh
$ docker run -it centos
```

這個docker命令是你與Docker守護進程的主要接口。run指令告訴Docker去下載并運行指定的鏡像(假設在本地還沒有這個鏡像)。又或者,你可以用pull命令直接下載一個鏡像但不運行它。有兩個參數:<code>i</code> 會讓Docker用交互模式運行,<code>t</code> 會讓它創建一個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命令提示符。查看一下這個系統,然后使用<code>exit</code>退出。

可以用<code>docker images</code>命令來查看系統中已下載好的鏡像:
```sh
$ docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
java                        8                   5282faca75e8        4 weeks ago         817.6 MB
tomcat                      latest              71093fb71661        8 weeks ago         347.7 MB
centos                      latest              7322fbe74aa5        11 weeks ago        172.2 MB
```
你可以看到我已經有了最新版的CentOS、Tomcat和Java 8。

未完待續...

到此,相信大家對“怎么用Docker重新定義Java虛擬化部署”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐市| 扎兰屯市| 板桥市| 班玛县| 柞水县| 鲁甸县| 富源县| 高青县| 昌吉市| 蕉岭县| 松原市| 阳西县| 镇安县| 平阳县| 晴隆县| 巴彦县| 大埔县| 石屏县| 阿尔山市| 进贤县| 丘北县| 华亭县| 石楼县| 合川市| 墨竹工卡县| 迁安市| 乌什县| 镇宁| 旬阳县| 卫辉市| 铜山县| 涿鹿县| 苗栗市| 嘉鱼县| 普兰店市| 托里县| 陕西省| 峡江县| 永寿县| 伊春市| 射洪县|