使用Docker搭建Java環(huán)境的步驟方法
Docker是干什么的
Docker 是一個(gè)基于Linux容器(LXC-linux container)的高級(jí)容器引擎,基于go語(yǔ)言開(kāi)發(fā),源代碼托管在 Github 上, 遵從Apache2.0協(xié)議開(kāi)源。Docker的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。
學(xué)習(xí)Docker首先要了解幾個(gè)概念:
鏡像—Docker的鏡像和常見(jiàn)的系統(tǒng)ISO鏡像類似,包含了應(yīng)用程序的信息;
容器—容器相當(dāng)于一個(gè)可以運(yùn)行起來(lái)的虛擬機(jī),應(yīng)用程序運(yùn)行在容器中,Docker運(yùn)行在“Docker”上;
倉(cāng)庫(kù)—倉(cāng)庫(kù)是存放鏡像的地方,有類似git的版本控制,同樣分為公開(kāi)倉(cāng)庫(kù)(Public)和私有倉(cāng)庫(kù)(Private)兩種形式;
Docker支持大部分的Linux發(fā)行版,通過(guò)使用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)用。
這張圖片很形象的說(shuō)明了Docker和VM之類的傳統(tǒng)虛擬化技術(shù)的區(qū)別:
vs
準(zhǔn)備
首先需要準(zhǔn)備一個(gè)CentOS的操作系統(tǒng),虛擬機(jī)也可以。具體配置要求如下:
1.必須是64位操作系統(tǒng)
2.建議內(nèi)核在3.8以上
安裝Docker
只需要通過(guò)以下命令即可安裝Docker軟件
yum -y install docker-io
可使用以下命令,查看Docker是否安裝成功:
docker version
如果輸出看Docker的版本號(hào),則說(shuō)明安裝成功了,可通過(guò)以下命令啟動(dòng)Docker服務(wù):
service docker start
如果service命令啟動(dòng)不了用下面的
systemctl start docker.service
做法
就像安裝軟件一樣,我們首先需要有一張刻錄了該軟件的光盤,如果使用的是虛擬光驅(qū),那么就需要準(zhǔn)備鏡像的文件,通過(guò)它來(lái)安裝軟件。在Docker的世界里,也是有鏡像的文件的,已經(jīng)安裝我們所需的操作系統(tǒng),我們一般稱為Docker鏡像
下載鏡像
docker search <image>
使用docker pull imagename(鏡像名)來(lái)下載鏡像
下載完成后使用以下命令查看本地所有的鏡像:
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
如果看到以上輸出,說(shuō)明你可以使用 “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ǔ)上來(lái)運(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開(kāi)發(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
·用文本編輯器打開(kāi)/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,具體過(guò)程如下:
vi /root/run.sh
然后,編輯腳本內(nèi)容如下:
#!/bin/bash source ~/.bashrc sh /opt/tomcat/bin/catalina.sh run
注意:這里必須先加載環(huán)境,然后使用Tomcat的運(yùn)行腳本來(lái)運(yùn)行Tomcat
最后,為運(yùn)行腳本添加執(zhí)行權(quán)限:
chmod u+x /root/run.sh
1.安裝nginx
先去官網(wǎng)下載源碼包注意要是gz的
http://nginx.org/en/download.html 下載地址
下載完后,解壓安裝包:
tar -zxvf nginx-1.11.5.tar.gz
然后再配置安裝變量,打開(kāi)解壓后的目錄-執(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”來(lái)創(chuàng)建一個(gè)新的”鏡像”:
docker commit 57c312bbaad1 javaweb:0.1
該容器ID是”57c312bbaad1”,所創(chuàng)建的鏡像名是”javaweb”
注意:”57c312bbaad1” 這個(gè)ID是使用 docker ps 命令來(lái)查看的
提交了新的鏡像你可以把這個(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端口,可通過(guò)Docker網(wǎng)橋來(lái)訪問(wèn)容器內(nèi)部的80端口了
--name:表示容器名稱,用一個(gè)有意義的名稱命名即可
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- GitBook 制作電子書詳細(xì)教程
- 利用docker搭建php7和nginx運(yùn)行環(huán)境全過(guò)程(官方鏡像)
- Docker 搭建 Tomcat 運(yùn)行環(huán)境的方法
- Docker搭建自己的本地鏡像倉(cāng)庫(kù)的步驟
- Docker 1分鐘搭建DNS服務(wù)器的方法
- 搭建基于Docker的PHP開(kāi)發(fā)環(huán)境的詳細(xì)教程
- 利用docker搭建LAMP運(yùn)行環(huán)境教程詳解
- Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實(shí)踐
- Docker搭建本地私有倉(cāng)庫(kù)的詳細(xì)步驟
- 使用Docker快速搭建你的Gitbook
相關(guān)文章
Docker compose up -d與Docker restart的區(qū)別
本文主要介紹了Docker compose up -d與Docker restart的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07在云服務(wù)器上基于docker安裝jenkins的實(shí)現(xiàn)步驟
本文主要介紹了在云服務(wù)器上基于docker安裝jenkins的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07阿里云CentOS 6.5 安裝Docker詳細(xì)步驟
這篇文章主要介紹了阿里云CentOS 6.5 安裝Docker的相關(guān)資料,現(xiàn)在都是云時(shí)代和大數(shù)據(jù)時(shí)代,希望大家也能跟著時(shí)代的步伐,需要的朋友可以參考下2016-10-10docker Compose部署springboot+vue前端端分離
本文主要介紹了docker Compose部署springboot+vue前端端分離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08docker自建rustdesk-server遠(yuǎn)程桌面的解決方案
RustDesk 是一款可以平替 TeamViewer 的開(kāi)源軟件,旨在提供安全便捷的自建方案,這篇文章主要介紹了docker自建rustdesk-server遠(yuǎn)程桌面的解決方案,需要的朋友可以參考下2024-07-07Ubuntu Docker 的安裝部署及簡(jiǎn)單應(yīng)用
這篇文章主要介紹了Ubuntu Docker 的安裝部署的相關(guān)資料,這里說(shuō)明介紹了詳細(xì)的步驟,需要的朋友可以參考下2016-10-10docker?save與docker?export的區(qū)別
docker?save和docker?export都能導(dǎo)出鏡像包,本文主要介紹了docker?save與docker?export的區(qū)別,試圖搞清楚docker?save和docker?export的功能是什么?適用于什么應(yīng)用場(chǎng)景?感興趣的可以了解一下2022-03-03