溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker怎么搭建Java環(huán)境

發(fā)布時(shí)間:2022-05-25 11:23:42 來源:億速云 閱讀:201 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Docker怎么搭建Java環(huán)境”,在日常操作中,相信很多人在Docker怎么搭建Java環(huán)境問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Docker怎么搭建Java環(huán)境”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

docker是干什么的

docker 是一個(gè)基于linux容器(lxc-linux container)的高級(jí)容器引擎,基于go語言開發(fā),源代碼托管在 github 上, 遵從apache2.0協(xié)議開源。docker的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。

學(xué)習(xí)docker首先要了解幾個(gè)概念:

鏡像—docker的鏡像和常見的系統(tǒng)iso鏡像類似,包含了應(yīng)用程序的信息;

容器—容器相當(dāng)于一個(gè)可以運(yùn)行起來的虛擬機(jī),應(yīng)用程序運(yùn)行在容器中,docker運(yùn)行在“docker”上;

倉(cāng)庫(kù)—倉(cāng)庫(kù)是存放鏡像的地方,有類似git的版本控制,同樣分為公開倉(cāng)庫(kù)(public)和私有倉(cāng)庫(kù)(private)兩種形式;

docker支持大部分的linux發(fā)行版,通過使用docker容器,就可以在不同的操作系統(tǒng),不同的機(jī)器上運(yùn)行自己的應(yīng)用,不用關(guān)心硬件、運(yùn)行環(huán)境之類的配置,應(yīng)用程序的遷移變得非常簡(jiǎn)單。

 docker和傳統(tǒng)虛擬化技術(shù)的對(duì)比

相比傳統(tǒng)虛擬機(jī)技術(shù),docker資源占用少,啟動(dòng)更快,很大的方便了項(xiàng)目的部署和運(yùn)維。

docker是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,復(fù)用本地主機(jī)的操作系統(tǒng),傳統(tǒng)方式是在硬件的基礎(chǔ)上,虛擬出多個(gè)操作系統(tǒng),然后在系統(tǒng)上部署相關(guān)的應(yīng)用。

這張圖片很形象的說明了docker和vm之類的傳統(tǒng)虛擬化技術(shù)的區(qū)別:

Docker怎么搭建Java環(huán)境 vsDocker怎么搭建Java環(huán)境

準(zhǔn)備

首先需要準(zhǔn)備一個(gè)centos的操作系統(tǒng),虛擬機(jī)也可以。具體配置要求如下:

1.必須是64位操作系統(tǒng)
2.建議內(nèi)核在3.8以上

安裝docker

只需要通過以下命令即可安裝docker軟件

yum -y install docker-io

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

docker version

如果輸出看docker的版本號(hào),則說明安裝成功了,可通過以下命令啟動(dòng)docker服務(wù):

service docker start

如果service命令啟動(dòng)不了用下面的

systemctl start docker.service

做法

就像安裝軟件一樣,我們首先需要有一張刻錄了該軟件的光盤,如果使用的是虛擬光驅(qū),那么就需要準(zhǔn)備鏡像的文件,通過它來安裝軟件。在docker的世界里,也是有鏡像的文件的,已經(jīng)安裝我們所需的操作系統(tǒng),我們一般稱為docker鏡像

下載鏡像

docker search <image>

使用docker pull imagename(鏡像名)來下載鏡像

下載完成后使用以下命令查看本地所有的鏡像:

docker images

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

repository        tag         image id      created       virtual size
docker.io/centos   centos7       f753707788c5    12 days ago     127.1 mb

如果看到以上輸出,說明你可以使用 “docker.cn/docker/centos”這個(gè)鏡像了,或?qū)⑵浞Q為倉(cāng)庫(kù)(repository),該鏡像有一個(gè)名為”centos7”的標(biāo)簽(tag),此外還有一個(gè)名為”25c5298b1a36”的鏡像id(這個(gè)是隨機(jī)生成,所以每個(gè)人看到的都不一樣)

啟動(dòng)容器

容器是在鏡像的基礎(chǔ)上來運(yùn)行的,一旦容器啟動(dòng)了,我們就可以登錄到容器中,安裝自己所需的軟件或應(yīng)用程序。 

使用進(jìn)入已經(jīng)運(yùn)行的docker

docker attach dabfb413d8cf[容器id]

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

docker run -i -t -v /root/software/:/mnt/software/ --privileged=true 2a392a47afc5

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/目錄下。

這一切做好后你就可以為這個(gè)容器安裝軟件了。

docker 傳送文件命令

docker cp more.log e7de404c00bd:/tmp/ 

1f8787b81bcd

安裝java開發(fā)環(huán)境

我們需要安裝的有jdk1.7,、tomcat7、nginx,安裝包去官網(wǎng)下載就行了

1.安裝jdk

首先,解壓jdk程序包:

tar -zxf jdk-7u71-linux-x64.tar.gz –c

如果是rpm包

rpm –ivh jdk-7u71-linux-x64.tar.gz

然后重命名文件夾

mv jdk1.7.0_71/ jdk/

最后配置環(huán)境變量

vi ~/.bashrc

在文件末尾添加如下配置:

export java_home=/opt/jdk

export path=$path:$java_home

·用文本編輯器打開/etc/profile 

 ·在profile文件末尾加入:

export java_home=/usr/share/jdk1.6.0_14 
 export path=$java_home/bin:$path 
 export classpath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jar

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

source ~/.bashrc

source /etc/profile

1.安裝tomcat

也是一樣,解壓tomcat程序包:

tar –zxf apache-tomcat-7.0.55.tar.gz

然后重命名tomcat目錄:

mv apache-tomcat-7.0.55/ tomcat/

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

vi /root/run.sh

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

#!/bin/bash

source ~/.bashrc

sh /opt/tomcat/bin/catalina.sh run

注意:這里必須先加載環(huán)境,然后使用tomcat的運(yùn)行腳本來運(yùn)行tomcat

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

chmod u+x /root/run.sh

1.安裝nginx

先去官網(wǎng)下載源碼包注意要是gz的

   下載地址

下載完后,解壓安裝包:

tar -zxvf nginx-1.11.5.tar.gz

然后再配置安裝變量,打開解壓后的目錄-執(zhí)行命令

cd nginx-1.11.5

配置安裝環(huán)境

./configure  --prefix=/usr/local/servers/nginx  “/usr/local/servers/nginx”是安裝路徑

有可能會(huì)出現(xiàn)./configure: error: c compiler cc is not found

這時(shí)需要運(yùn)行命令更新一下gcc

yum install gcc gcc-c++ ncurses-devel perl

yum -y install pcre-devel

yum -y install zlib-devel

yum -y install autoconf libtool make

在解壓目錄執(zhí)行:

make

切換到root用戶執(zhí)行安裝命令

make install

創(chuàng)建軟鏈

ln –s /usr/local/servers/nginx/sbin/nginx /usr/local/bin/nginx

啟動(dòng)nginx服務(wù)

nginx

再用 ps  -ef|grep nginx查看是否啟動(dòng)成功

提交docker鏡像

首先退出你剛才配置好的docker鏡像

exit

然后使用以下命令可以看到剛才退出的docker鏡像

docker ps –a

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

docker commit 57c312bbaad1 javaweb:0.1

該容器id是”57c312bbaad1”,所創(chuàng)建的鏡像名是”javaweb”

注意:”57c312bbaad1” 這個(gè)id是使用 docker ps 命令來查看的

提交了新的鏡像你可以把這個(gè)鏡像儲(chǔ)存tar包

docker  –o ~/javaweb.tar javaweb

docker  save –o  保存的目錄  鏡像名

啟動(dòng)容器

先用 docker  images看看當(dāng)前所有的鏡像

啟動(dòng)最新創(chuàng)建的鏡像

docker run -d -p 80:80 --name javaweb javaweb:0.1 /root/run.sh

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

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

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

到此,關(guān)于“Docker怎么搭建Java環(huán)境”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI