docker映象基礎: helloworld.war包映象(上)
阿新 • • 發佈:2018-12-26
寫在前面
- 熟悉 dockerfile 編寫
- 驗證 commit 提交映象失敗問題
- cp web專案至容器後,不能commit生成最新映象(volume導致)
實驗素材
- jdk-8u31-linux-x64.tar.gz
- apache-tomcat-8.0.53.tar.gz
- centos 映象版本
- 拉取命令
docker pull centos:latest
- CentOS Linux release 7.5.1804 (Core)
- 拉取命令
操作步驟
-
1 上傳( XShell/SecureCRT )實驗素材至 宿主機伺服器某資料夾下,檔案目錄結構如下:
-
2 編寫 dockerfile, 具體如下:
FROM centos:latest
MAINTAINER kngines
#把java與tomcat新增到容器中
ADD jdk-8u31-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.53.tar.gz /usr/local/
#配置java與tomcat環境變數
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.53
ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.53
ENV PATH $PATH :$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器執行時監聽的埠
EXPOSE 8080
-
3 dockerfile 構建映象:
docker build -t tomcat8-jdk1.8:latest . -f tomcat8-jdk1.8-dockerfile
- 映象生成後,使用
docker images
檢視本地映象,如下:- 其中,200MB大小的映象為拉取的最新CentOS映象,590MB大小的映象為構建的映象,映象大小有明顯的改變。
- 其中,200MB大小的映象為拉取的最新CentOS映象,590MB大小的映象為構建的映象,映象大小有明顯的改變。
-
4 建立容器:
docker run -it -d -p 0.0.0.0:8088:8080 --name helloworld tomcat8-jdk1.8:latest
docker ps -a
,新生成的容器如下所示:
-
5 訪問
- 進入容器:
docker exec -it a76243528c21 /bin/bash
- a76243528c21 為新生成容器的ID
- 在容器中,啟動tomcat:
sh /usr/local/apache-tomcat-8.0.53/bin/startup.sh
- 執行過程及結果如下:
- 執行過程及結果如下:
- 進入容器:
-
6 結果
- 結果顯示如下:
- hellowworld.war映象製作(上),到此已經成功結束。
- 結果顯示如下:
下載連結
其他命令
- 檢視宿主機 OS 版本資訊
cat /etc/redhat-release
- 容器內安裝
ifconfig
yum install net-tools
後記
- 本想在本篇博文中把 helloworl.war 映象製作過程整體記錄下,感覺那樣文章太長,閱讀不便。所以將文章分了上下篇。
- 當然,如果完成了博文中最後部分,仍舊可以通過
commit
建立自己的映象,作為Web專案執行基礎映象,包含tomcat、jdk。 - 下篇比較重要,主要是記錄在映象製作過程中遇到的坑(volume)。
- 有問題歡迎留言,謝謝!