1. 程式人生 > >docker映象基礎: helloworld.war包映象(上)

docker映象基礎: helloworld.war包映象(上)

寫在前面
  • 熟悉 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 )實驗素材至 宿主機伺服器某資料夾下,檔案目錄結構如下:
    tree

  • 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大小的映象為構建的映象,映象大小有明顯的改變。
        docker映象
  • 4  建立容器:

    • docker run -it -d -p 0.0.0.0:8088:8080 --name helloworld tomcat8-jdk1.8:latest
      • docker ps -a,新生成的容器如下所示:
        v1
  • 5  訪問

    • 進入容器: docker exec -it a76243528c21 /bin/bash
      • a76243528c21 為新生成容器的ID
      • 在容器中,啟動tomcat: sh /usr/local/apache-tomcat-8.0.53/bin/startup.sh
        • 執行過程及結果如下:
          容器內啟動
  • 6  結果

    • 結果顯示如下:
      http_result結果
    • hellowworld.war映象製作(上),到此已經成功結束。
下載連結
其他命令
  • 檢視宿主機 OS 版本資訊
    • cat /etc/redhat-release
  • 容器內安裝 ifconfig
    • yum install net-tools
後記
  • 本想在本篇博文中把 helloworl.war 映象製作過程整體記錄下,感覺那樣文章太長,閱讀不便。所以將文章分了上下篇。
  • 當然,如果完成了博文中最後部分,仍舊可以通過 commit 建立自己的映象,作為Web專案執行基礎映象,包含tomcat、jdk。
  • 下篇比較重要,主要是記錄在映象製作過程中遇到的坑(volume)。
  • 有問題歡迎留言,謝謝!