1. 程式人生 > >以tomcat映象為基礎部署war包後再做成映象

以tomcat映象為基礎部署war包後再做成映象

#以互動的方式啟動本地的映象tomcat:hps,並且將本地目錄/mnt/iso掛在到容器中的/tmp/repositories目錄,方便從本地獲取一些安裝檔案並進行一些操作
docker run -i -t -v /mnt/iso:/tmp/repositories tomcat:hps /bin/bash

#進行一些比如安裝之類的操作。
docker ps

#找到自己正在操作的容器id(例如3bf5491933f2),然後退出互動介面,執行以下命令
docker commit 3bf5491933f2 tomcat:hps1

###此時的容器tomcat:hps1實際上是會加一層/bin/bash的操作,如果直接執行docker run -d -p 8081:8080 tomcat:hps1 不加命令,預設就是提供/bin/bash命令,因此需要在這一層外面再封裝一層命令,並將容器內tomcat埠(以下已8080為例)暴露出來,通過Dockerfile方式來實現,檔案內容如分割線內所示:

#----------分割線----------
# This is a comment
FROM tomcat:hps1
# expose httpd port
EXPOSE 8080
# the command to run
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
#----------分割線----------
#然後在Dockerfile檔案所在目錄下,執行以下命令生成docker映象:
docker build -t tomcat:hmr .

#這時候直接執行以下命令可以驗證
docker run -d -p 8081:8080 tomcat:hmr

#如果希望將這個tomcat:hmr映象儲存成檔案,可以執行:
docker save -o tomcat_hmr.tar tomcat:hmr

#這樣就可以拷貝到其他伺服器上去,然後可以在那臺伺服器上執行以下命令將映象載入到本地(而非倉庫中):
docker load -i tomcat_hmr.tar

###如果不想再在tomcat:hps1外封裝一層,需要執行以下命令才能使用:
docker run -d -p 8081:8080 tomcat:hps1 /usr/local/tomcat/bin/catalina.sh run