Docker--建立tomcat+JDK映象併發布web專案例項
1:建立Dockerfile檔案,用於構建映象
-
如果你還不知道Dockerfile如何建立,請移步我的另一篇部落格:https://blog.csdn.net/CSDN___LYY/article/details/83061188
-
注意點:
-
dockerfile中的路徑統一
-
這裡使用的版本較低(被容器化的專案使用的比較舊),如需使用其他版本的jdk或者tomcat,找到相應的url替換對應http位置即可
-
我的專案的資料庫使用的是遠端資料庫,所以沒有在映象中加入資料庫的構建,還是直接使用的遠端資料庫
-
-
Dockerfile檔案如下:
#使用的基礎映象
FROM centos
#不指定版本tag,則預設pull最新的
#建立者資訊
MAINTAINER <liyangyang> <test@163.com>
#安裝wget
RUN yum install -y wget
#安裝JDK
RUN mkdir /var/tmp/jdk \
&& wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /var/tmp/jdk http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz \
&& tar -zxf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz -C /var/tmp/jdk \
&& rm -rf /var/tmp/jdk/jdk-8u111-linux-x64.tar.gz
#配置JDK環境變數
ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin
#安裝Tomcat
RUN mkdir /var/tmp/tomcat \
&& wget -P /var/tmp/tomcat http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz \
&& tar -xzf /var/tmp/tomcat/apache-tomcat-7.0.91.tar.gz -C /var/tmp/tomcat \
&& rm -rf /var/tmp/tomcat/apache-tomcat-7.0.91.tar.gz
#配置Tomcat環境變數
ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-7.0.91
#指定容器暴露埠
EXPOSE 8080
#新增專案
ADD xcar-index-web.war /var/tmp/tomcat/apache-tomcat-7.0.91/webapps/
#建立容器時預設啟動tomcat
CMD ["/var/tmp/tomcat/apache-tomcat-7.0.91/bin/catalina.sh", "run"]
2:使用Dockerfile構建映象
-
準備工作:
-
新建一個資料夾docker_file(最好將dockerfile放在一個新的資料夾中,具體原因請看 文首url指向的博文) 。
-
將建立的Dockerfile檔案放在該資料夾中,Dockerfile的檔名最好是“Dockerfile”,這樣會預設查詢到該檔案,不用再進行指定檔案。
-
在docker_file資料夾中放入你的web專案的war包。
-
最後該資料夾內容應該是如下圖所示:
-
-
使用build命令構建映象
docker build -t xcardata/centos:v1.0 .
#或者後臺執行:
nohup docker build -t xcardata/centos:v1.0 . > ./build.log 2>&1 &
####該命令介紹:
# docker build : 建立映象
# -t : 設定映象的名稱和tag
# xcardata/centos:v1.0 : “/”前面的為映象名稱,後面的為映象的tag
# . : 這是表示Dockerfile檔案在當前的上下文中
####注意:
# 在下載jdk的時候速度可能特別慢。。。。。
-
構建成功標誌:最後出現“Successfully built 5fa2e6db348b”即可,“5fa2e6db348b”是映象的唯一ID,不同映象ID也不同
3:使用映象構建容器並啟動
-
使用run命令構建:
docker run -d -p 8080:8080 newxcardata/centos:v1.0
####引數介紹:
# docker run : 建立並啟動一個容器
# -d : 在後臺執行該容器
# -p 8080:8080 : 指定對映埠,<本機埠>:<容器埠>,將容器的8080埠對映到本機的8080埠上,這樣我們直接訪問本機的8080即可訪問到容器的8080埠
# newxcardata/centos:v1.0 : 指定使用映象的名稱和TAG
####執行結束後會返回一個ID,便是容器的唯一ID
-
檢視容器是否啟動成功
-
使用命令:docker ps -a
-
查詢與返回一致的ID的容器,如果其狀態(STATUS)為Up狀態 即為啟動成功!
-
如果不知道docker ps得到的結果各個欄位的含義,請移步我的另一篇部落格:https://blog.csdn.net/CSDN___LYY/article/details/83042553
-
例如:
-
4:測試容器
-
容器啟動後有時候容器中的tomcat還沒有啟動完畢,我們可以通過檢視該容器的log來判斷tomcat是否啟動成功
docker logs 容器ID或者容器name
-
當我們在確認tomcat啟動成功後,在本地測試是否可以訪問專案
####在本機的瀏覽器中輸入:
ip:8080/xcar-index-web
####例如:
10.52.10.227:8080/xcar-index-web
####:引數解釋:
# ip為你伺服器的ip地址,比如我的就是10.52.10.227
# 8080為我們伺服器被容器對映的埠
# /xcar-index-web :代表我們專案名稱,也就是你的war包名稱
-
如果可以訪問,那麼恭喜你容器建立成功了!
-
如果不可以,就要檢查一下容器的logs了,看看是什麼原因,具體原因具體解決。有什麼問題也可以在此博文下評論,我們一起討論~~~
相關文章
- 1、Dart : 建立併發布Dart Libraries;Dart
- 建立併發布自己的nuget包
- 如何建立React元件併發布到npm?React元件NPM
- Docker--容器和映象的使用Docker
- Flutter 如何建立併發布 Plugin (VS Code + GitHub 釋出)FlutterPluginGithub
- jenkins 專案獲取遠端java專案併發布JenkinsJava
- Docker--基礎知識點--20--Commit映象DockerMIT
- 【擁抱元宇宙】建立你的第一個Unity程式HelloWorld,併發布元宇宙Unity
- idea建立web專案IdeaWeb
- Angular多環境打包專案併發布到nginx執行AngularNginx
- 建立併發包
- mvn 建立java專案 web專案JavaWeb
- 開發 Laravel 包併發布到 packagist(composer)Laravel
- Docker--基礎知識點--19--映象原理之分層理解Docker
- 完整的python專案例項-python完整專案Python
- spring boot 建立web專案(IDEA)Spring BootWebIdea
- idea社群版建立web專案IdeaWeb
- IDEA建立動態Web專案IdeaWeb
- 求一個ot的專案例項
- 【Go 程式設計實踐】從零到一:建立、測試併發布自己的 Go 庫Go程式設計
- 快速構建CLI程式併發布到PyPi
- Maven建立Web應用程式專案MavenWeb
- pom-建立web專案錯誤Web
- PHP引入合併多個JS和CSS檔案例項PHPJSCSS
- Thread 併發執行例項thread
- python開發例項-python開發案例Python
- docker建立beego映象DockerGo
- Docker--基礎Docker
- sbt建立play framework(play!)scala web專案FrameworkWeb
- go 併發程式設計案例二 常見併發模型介紹Go程式設計模型
- 使用ArcEngine開發自定義Tool併發布為GP服務
- 完整的python專案例項-Python例項練手專案彙總(附原始碼)Python原始碼
- 使用 Webpack4.0 打包元件庫併發布到 npmWeb元件NPM
- python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲Python爬蟲遊戲
- 完整的python專案例項-《Python爬蟲開發與專案實戰》pdf完整版Python爬蟲
- 併發伺服器(五):Redis 案例研究伺服器Redis
- docker 映象建立與使用Docker
- Spring Boot 建立 Docker 映象Spring BootDocker