linux安装docker部署java项目
大家好,我是烤鴨:
分享一下linux上部署docker的javaweb項目
?
1.環(huán)境
linux centos 7.2
64-bit?系統(tǒng)
kernel 3.10+
?查看版本號 :
uname -r大于3.10即可
2.安裝docker
這里是官網(wǎng)安裝教程
https://docs.docker.com/engine/installation/linux/docker-ce/centos/
說一下docker ce 和ee版的區(qū)別,ce是社區(qū)版免費的,ee是企業(yè)版,收費的。
簡述幾個安裝命令,一路打下來就好。
2.1.移除之前定的安裝:
yum remove docker \docker-common \docker-selinux \docker-engine2.2.設(shè)置倉庫:
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo2.3.安裝docker-ce
yum install docker-ce
2.4.啟動docker
2.5.運行hello-world鏡像
docker run hello-world成功如下圖:
 3.docker安裝成功了,我選擇的是官網(wǎng)拉取一個centos鏡像
 
這里是官網(wǎng)的商店,可以找你想要的鏡像。
https://store.docker.com/search?offering=community&type=edition
https://store.docker.com/images/centos
其實要的就是這個命令:
docker pull centos拉取到了centos的鏡像,我們用鏡像啟動容器。
4.鏡像創(chuàng)建與容器啟動
4.1查看鏡像
docker images
4.2用鏡像啟動容器
說一下downlaod和/usr/my/docker/download/
前者表示你把東西放在你服務(wù)器的download/文件夾下,在進(jìn)入容器的時候,文件會相應(yīng)地映射到/usr/my/docker/download/這個文件夾下。
/bin/bash表示啟動后進(jìn)入命令行,crtl+d或者exit退出。
如果這一步出現(xiàn):Permission denied,參考這篇大神的文章:http://blog.csdn.net/rznice/article/details/52170085
查看容器:
docker ps -a4.3重新進(jìn)入容器
首先啟動容器:
docker start c806a68d2409進(jìn)入容器:
docker attach c806a68d24095.java環(huán)境安裝
5.1將jdk的tar包和tomcat的tar包放到/download/文件下
如圖所示:
5.2 這時候進(jìn)入容器指定目錄,我的是/usr/mmy/就能找找到這兩個jar包,解壓和配置環(huán)境變量。
5.3解壓jdk和tomcat的tar包
cd /usr/my mkdir jdk mkdir tomcat cd /usr/my/docker/download/ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/my/jdk tar -zxvf apache-tomcat-9.0.0.M26.tar.gz -C /usr/my/tomcatmv apache-tomcat-9.0.0.M26 tomcat_test5.4配置環(huán)境變量
這里我沒有配置jdk的環(huán)境變量,因為不需要,當(dāng)然也可以配置。
vi /etc/profileG-到最后一行,o-新?lián)Q行開始。最后一行加上:
#set java environment export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH保存后 執(zhí)行生效:
source /etc/profile查看java版本:
5.5配置tomcat
進(jìn)入tomcat的bin目錄下
cd /usr/my/tomcat/tomcat_test/bin vi setclasspath.sh? vi setclasspath.sh?最后添加:
export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144 export JRE_HOME=$JAVA_HOME/jre保存后,啟動tomcat。
./startup.sh
 6.配置容器啟動環(huán)境變量
 
之所以前面說jdk的環(huán)境變量可以不配置,因為容器啟動重新加載單獨的配置文件。
6.1設(shè)置環(huán)境變量
vi ~/.bashrc文件最后加上:
#set java environment export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH生效:
source ~/.bashrc6.2編寫運行腳本
vi /root/run.sh腳本內(nèi)容如下:
#!/bin/bash source ~/.bashrc sh /usr/my/tomcat/tomcat_test/bin/catalina.sh run千萬不要忘記給腳本加權(quán)限:
chmod u+x /root/run.sh這時候容器內(nèi)部的準(zhǔn)備工作就完了。退出容器。
7.創(chuàng)建web鏡像
查找容器:
docker ps -a創(chuàng)建鏡像:
docker commit c806a68d2409 test_web:1.0啟動鏡像:
docker run -d -p 8999:8080 --name test test_web:1.0 /root/run.sh
 -d:表示以“守護(hù)模式”執(zhí)行/root/run.sh腳本,此時 Tomcat 控制臺不會出現(xiàn)在輸出終端上。 ?
 -p:表示宿主機與容器的端口映射,此時將容器內(nèi)部的 8080 端口映射為宿主機的 8999端口,這樣就向外界暴露了 8999端口,可通過 Docker 網(wǎng)橋來訪問容器內(nèi)部的 8080 端口了。 ?
 --name:表示容器名稱,用一個有意義的名稱命名即可。
查看鏡像:
docker ps如果能查到,說明啟動成功了。
最后附上一張訪問成功的圖(8999端口):
 部分內(nèi)容來自:
http://blog.csdn.net/evankaka/article/details/50722788
8.問題:
另外說一下出現(xiàn)的問題:
8.1.如果出現(xiàn)類似:bash:vi:或者cd或者ps等常用命令
command not find
 檢查一下/etc/profile下,是不是新配的環(huán)境變量有問題。
vi命令不好用的話:
在命令行中輸入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin? 這樣可以保證命令行命令暫時可以使用。
8.2.如果出現(xiàn)容器啟動沒反應(yīng),docker ps 找不到內(nèi)容,但是啟動沒報錯。
估計是腳本啟動失敗,原因不太清楚。
可以試著把/etc/profile文件還原,再嘗試下。
畢竟啟動容器不需要改/etc/profile這個文件,有單獨的文件~/.bashrc配置環(huán)境變量就可以了。
 ?
 ?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的linux安装docker部署java项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 谭浩强《c语言程序设计》第四版--重点难
- 下一篇: 为什么JAVA的垃圾回收机制无法避免内存
