欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么使用Docker搭建JavaWeb運(yùn)行環(huán)境

今天小編給大家分享一下怎么使用Docker搭建Java Web運(yùn)行環(huán)境的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為東寶企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),東寶網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

我們先來(lái)回顧一下傳統(tǒng)虛擬化技術(shù)的體系架構(gòu):
怎么使用Docker搭建Java Web運(yùn)行環(huán)境

可見(jiàn),我們?cè)谒拗鳈C(jī)的操作系統(tǒng)上,可安裝了多個(gè)虛擬機(jī),而在每個(gè)虛擬機(jī)中,通過(guò)虛擬化技術(shù),實(shí)現(xiàn)了一個(gè)虛擬操作系統(tǒng),隨后,就可以在該虛擬操作系統(tǒng)上,安裝自己所需的應(yīng)用程序了。這一切看似非常簡(jiǎn)單,但其中的技術(shù)細(xì)節(jié)是相當(dāng)高深莫測(cè)的,大神級(jí)人物都不一定說(shuō)得清楚。

凡是使用過(guò)虛擬機(jī)的同學(xué),應(yīng)該都知道,啟動(dòng)虛擬機(jī)就像啟動(dòng)一臺(tái)計(jì)算機(jī),初始化過(guò)程是相當(dāng)慢的,我們需要等很久,才能看到登錄界面。一旦虛擬機(jī)啟動(dòng)以后,就可以與宿主機(jī)建立網(wǎng)絡(luò)連接,確保虛擬機(jī)與宿主機(jī)之間是互聯(lián)互通的。不同的虛擬機(jī)之間卻是相互隔離的,也就是說(shuō),彼此并不知道對(duì)方的存在,但每個(gè)虛擬機(jī)占用的都是宿主機(jī)的硬件與網(wǎng)絡(luò)資源。

我們?cè)賮?lái)對(duì)比一下 docker 技術(shù)的體系架構(gòu)吧:
怎么使用Docker搭建Java Web運(yùn)行環(huán)境

可見(jiàn),在宿主機(jī)的操作系統(tǒng)上,有一個(gè) docker 服務(wù)在運(yùn)行(或者稱為“docker 引擎”),在此服務(wù)上,我們可開(kāi)啟多個(gè) docker 容器,而每個(gè) docker 容器中可運(yùn)行自己所需的應(yīng)用程序,docker 容器之間也是相互隔離的,同樣地,都是占用的宿主機(jī)的硬件與網(wǎng)絡(luò)資源。

docker 容器相對(duì)于虛擬機(jī)而言,除了在技術(shù)實(shí)現(xiàn)上完全不一樣以外,啟動(dòng)速度較虛擬機(jī)而言有本質(zhì)的飛躍,啟動(dòng)一個(gè)容器只在眨眼瞬間。不管是虛擬機(jī)還是 docker 容器,它們都是為了隔離應(yīng)用程序的運(yùn)行環(huán)境,節(jié)省我們的硬件資源,為我們開(kāi)發(fā)人員提供福利。

需要強(qiáng)調(diào)的是,筆者并非否定虛擬化技術(shù),而是想通過(guò)本文讓更多的讀者了解如何使用 docker 技術(shù),讓大家知道除了虛擬化技術(shù)以外,還有另一種替代技術(shù),也能讓應(yīng)用程序隔離起來(lái)。

原料

前提條件

首先,您要準(zhǔn)備一個(gè) centos 的操作系統(tǒng),虛擬機(jī)也行。總之,可以通過(guò) linux 客戶端工具訪問(wèn)到 centos 操作系統(tǒng)就行。

需要說(shuō)明的是,ubuntu 或其它 linux 操作系統(tǒng)也能玩 docker,只不過(guò)本文選擇了以 centos 為例,僅此而已。

centos 具體要求如下:

  • 必須是 64 位操作系統(tǒng)

  • 建議內(nèi)核在 3.8 以上

通過(guò)以下命令查看您的 centos 內(nèi)核:

uname -r

如果執(zhí)行以上命令后,輸出的內(nèi)核版本號(hào)低于 3.8,請(qǐng)參考下面的方法來(lái)來(lái)升級(jí)您的 linux 內(nèi)核。

對(duì)于 centos 6.5 而言,內(nèi)核版本默認(rèn)是 2.6。首先,可通過(guò)以下命令安裝最新內(nèi)核:

rpm --import https://www.elrepo.org/rpm-gpg-key-elrepo.org
rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-lt

隨后,編輯以下配置文件:

vi /etc/grub.conf

將default=1修改為default=0。

最后,通過(guò)reboot命令重啟操作系統(tǒng)。

重啟后如果不出意外的話,再次查看內(nèi)核,您的 centos 內(nèi)核將會(huì)顯示為 3.10。

如果到這里,您和我們所期望的結(jié)果是一致的。恭喜您!下面我們就一起來(lái)安裝 docker 了。

安裝 docker

只需通過(guò)以下命令即可安裝 docker 軟件:

rpm -uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io

可使用以下命令,查看 docker 是否安裝成功:

docker version

若輸出了 docker 的版本號(hào),則說(shuō)明安裝成功,我們下面就可以開(kāi)始使用 docker 了。

可通過(guò)以下命令啟動(dòng) docker 服務(wù):

service docker start

做法

就像曾經(jīng)安裝軟件一樣,我們首先需要有一張刻錄了該軟件的光盤,如果您使用的是虛擬光驅(qū),那么就需要運(yùn)行一種名為“鏡像”的文件,通過(guò)它來(lái)安裝軟件。在 docker 的世界里,也有一個(gè)名為“鏡像”的東西,已經(jīng)安裝我們所需的操作系統(tǒng),我們一般成為“docker 鏡像”,本文簡(jiǎn)稱“鏡像”。

那么問(wèn)題來(lái)了,我們從哪里下載鏡像呢?

docker官網(wǎng) 確實(shí)已經(jīng)提供了所有的鏡像下載地址,可惜在國(guó)內(nèi)卻是無(wú)法訪問(wèn)的。幸好國(guó)內(nèi)好心人提供了一個(gè) docker 中文網(wǎng),在該網(wǎng)站上可以下載我們所需的 docker 鏡像。

下載鏡像

我們不妨還是以 centos 為例,通過(guò)以下步驟,下載一個(gè) centos 的鏡像。

首先,訪問(wèn) docker 中文網(wǎng),在首頁(yè)中搜索名為“centos”的鏡像,在搜索的結(jié)果中,有一個(gè)“官方鏡像”,它就是我們所需的。

然后,進(jìn)入 centos 官方鏡像頁(yè)面,在“pull this repository”輸入框中,有一段命令,把它復(fù)制下來(lái),在自己的命令行上運(yùn)行該命令,隨后將立即下載該鏡像。

最后,使用以下命令查看本地所有的鏡像:

docker images

當(dāng)下載完成后,您應(yīng)該會(huì)看到:

repository                tag                 image id            created             virtual size
docker.cn/docker/centos   centos6             25c5298b1a36        7 weeks ago         215.8 mb

如果看到以上輸出,說(shuō)明您可以使用“docker.cn/docker/centos”這個(gè)鏡像了,或?qū)⑵浞Q為倉(cāng)庫(kù)(repository),該鏡像有一個(gè)名為“centos6”的標(biāo)簽(tag),此外還有一個(gè)名為“25c5298b1a36 ”的鏡像 id(可能您所看到的鏡像 id 與此處的不一致,那是正?,F(xiàn)象,因?yàn)檫@個(gè)數(shù)字是隨機(jī)生成的)。此外,我們可以看到該鏡像只有 215.8 mb,非常小巧,而不像虛擬機(jī)的鏡像文件那樣龐大。

現(xiàn)在鏡像已經(jīng)有了,我們下面就需要使用該鏡像,來(lái)啟動(dòng)容器。

啟動(dòng)容器

容器是在鏡像的基礎(chǔ)上來(lái)運(yùn)行的,一旦容器啟動(dòng)了,我們就可以登錄到容器中,安裝自己所需的軟件或應(yīng)用程序。既然鏡像已經(jīng)下載到本地,那么如何才能啟動(dòng)容器呢?

只需使用以下命令即可啟動(dòng)容器:

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

這條命令比較長(zhǎng),我們稍微分解一下,其實(shí)包含以下三個(gè)部分:

docker run <相關(guān)參數(shù)> <鏡像 id> <初始命令>

其中,相關(guān)參數(shù)包括:

  • -i:表示以“交互模式”運(yùn)行容器

  • -t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行

  • -v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>

假設(shè)我們的所有安裝程序都放在了宿主機(jī)的/root/software/目錄下,現(xiàn)在需要將其掛載到容器的/mnt/software/目錄下。

需要說(shuō)明的是,不一定要使用“鏡像 id”,也可以使用“倉(cāng)庫(kù)名:標(biāo)簽名”,例如:docker.cn/docker/centos:centos6。

初始命令表示一旦容器啟動(dòng),需要運(yùn)行的命令,此時(shí)使用“/bin/bash”,表示什么也不做,只需進(jìn)入命令行即可。

安裝相關(guān)軟件

為了搭建 java web 運(yùn)行環(huán)境,我們需要安裝 jdk 與 tomcat,下面的過(guò)程均在容器內(nèi)部進(jìn)行。我們不妨選擇/opt/目錄作為安裝目錄,首先需要通過(guò)cd /opt/命令進(jìn)入該目錄。

安裝 jdk()

首先,解壓 jdk 程序包:

tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -c .

然后,重命名 jdk 目錄:

mv jdk1.7.0_67/ jdk/

安裝 tomcat

首先,解壓 tomcat 程序包:

tar -zxf /mnt/software/apache-tomcat-7.0.55.tar.gz -c .

然后,重命名 tomcat 目錄:

mv apache-tomcat-7.0.55/ tomcat/

設(shè)置環(huán)境變量

首先,編輯.bashrc文件

vi ~/.bashrc

然后,在該文件末尾添加如下配置:

export java_home=/opt/jdk
export path=$path:$java_home

最后,需要使用source命令,讓環(huán)境變量生效:

source ~/.bashrc

編寫運(yùn)行腳本

我們需要編寫一個(gè)運(yùn)行腳本,當(dāng)啟動(dòng)容器時(shí),運(yùn)行該腳本,啟動(dòng) tomcat,具體過(guò)程如下:

首先,創(chuàng)建運(yùn)行腳本:

vi /root/run.sh

然后,編輯腳本內(nèi)容如下:

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

注意:這里必須先加載環(huán)境變量,然后使用 tomcat 的運(yùn)行腳本來(lái)啟動(dòng) tomcat 服務(wù)。

最后,為運(yùn)行腳本添加執(zhí)行權(quán)限:

chmod u+x /root/run.sh

退出容器

當(dāng)以上步驟全部完成后,可使用exit命令,退出容器。

隨后,可使用如下命令查看正在運(yùn)行的容器:

docker ps

此時(shí),您應(yīng)該看不到任何正在運(yùn)行的程序,因?yàn)閯偛乓呀?jīng)使用exit命令退出的容器,此時(shí)容器處于停止?fàn)顟B(tài),可使用如下命令查看所有容器:

docker ps -a

輸出如下內(nèi)容:

container id    image      command             created             status                      ports               names
57c312bbaad1  docker.cn/docker/centos:centos6   "/bin/bash"  27 minutes ago  exited (0) 19 seconds ago   naughty_goldstine

記住以上container id(容器 id),隨后我們將通過(guò)該容器,創(chuàng)建一個(gè)可運(yùn)行 java web 的鏡像。

創(chuàng)建 java web 鏡像

使用以下命令,根據(jù)某個(gè)“容器 id”來(lái)創(chuàng)建一個(gè)新的“鏡像”:

docker commit 57c312bbaad1 huangyong/javaweb:0.1

該容器的 id 是“57c312bbaad1”,所創(chuàng)建的鏡像名是“huangyong/javaweb:0.1”,隨后可使用鏡像來(lái)啟動(dòng) java web 容器。

啟動(dòng) java web 容器

有必要首先使用docker images命令,查看當(dāng)前所有的鏡像:

repository                tag                 image id            created             virtual size
huangyong/javaweb         0.1                 fc826a4706af        38 seconds ago      562.8 mb
docker.cn/docker/centos   centos6             25c5298b1a36        7 weeks ago         215.8 mb

可見(jiàn),此時(shí)已經(jīng)看到了最新創(chuàng)建的鏡像“huangyong/javaweb:0.1”,其鏡像 id 是“fc826a4706af”。正如上面所描述的那樣,我們可以通過(guò)“鏡像名”或“鏡像 id”來(lái)啟動(dòng)容器,與上次啟動(dòng)容器不同的是,我們現(xiàn)在不再進(jìn)入容器的命令行,而是直接啟動(dòng)容器內(nèi)部的 tomcat 服務(wù)。此時(shí),需要使用以下命令:

docker run -d -p 58080:8080 --name javaweb huangyong/javaweb:0.1 /root/run.sh

稍作解釋:

  • -d:表示以“守護(hù)模式”執(zhí)行/root/run.sh腳本,此時(shí) tomcat 控制臺(tái)不會(huì)出現(xiàn)在輸出終端上。

  • -p:表示宿主機(jī)與容器的端口映射,此時(shí)將容器內(nèi)部的 8080 端口映射為宿主機(jī)的 58080 端口,這樣就向外界暴露了 58080 端口,可通過(guò) docker 網(wǎng)橋來(lái)訪問(wèn)容器內(nèi)部的 8080 端口了。

  • --name:表示容器名稱,用一個(gè)有意義的名稱命名即可。

關(guān)于 docker 網(wǎng)橋的內(nèi)容,需要補(bǔ)充說(shuō)明一下。實(shí)際上 docker 在宿主機(jī)與容器之間,搭建了一座網(wǎng)絡(luò)通信的橋梁,我們可通過(guò)宿主機(jī) ip 地址與端口號(hào)來(lái)映射容器內(nèi)部的 ip 地址與端口號(hào),

在一系列參數(shù)后面的是“鏡像名”或“鏡像 id”,怎么方便就怎么來(lái)。最后是“初始命令”,它是上面編寫的運(yùn)行腳本,里面封裝了加載環(huán)境變量并啟動(dòng) tomcat 服務(wù)的命令。

當(dāng)運(yùn)行以上命令后,會(huì)立即輸出一長(zhǎng)串“容器 id”,我們可通過(guò)docker ps命令來(lái)查看當(dāng)前正在運(yùn)行的容器。

container id        image                   command             created             status              ports                     names
82f47923f926  huangyong/javaweb:0.1   "/root/run.sh"  4 seconds ago     up 3 seconds      0.0.0.0:58080->8080/tcp   javaweb

品嘗

在瀏覽器中,輸入以下地址,即可訪問(wèn) tomcat 首頁(yè)

注意:這里使用的是宿主機(jī)的 ip 地址,與對(duì)外暴露的端口號(hào) 58080,它映射容器內(nèi)部的端口號(hào) 8080。

以上就是“怎么使用Docker搭建Java Web運(yùn)行環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:怎么使用Docker搭建JavaWeb運(yùn)行環(huán)境
文章位置:http://chinadenli.net/article40/pdsieo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、域名注冊(cè)網(wǎng)站營(yíng)銷、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)