對於java程序員來講,要想使用Docker來部署你的應用,那麼在鏡像中安裝相似於tomcat的容器基本上是必須的(sprintboot項目除外),本篇介紹本身基於對centos鏡像的修改,建立本身的想要的tomcat運行環境鏡像的過程。java
一、拉取centos鏡像 docker pull centoslinux
二、在宿主機(即你的linux機)穿件/opt/software目錄,把要用到的安裝包放在裏面程序員
三、啓動centos容器 docker run -i -t -v /opt/software/:/mnt/software/ --privileged=true 5182e96772bf /bin/bash,web
-
-i:表示以「交互模式」運行容器docker
-
-t:表示容器啓動後會進入其命令行shell
-
-v:表示須要將本地哪一個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>apache
- --privileged=true 不加在容器內部可能會提示操做權限問題
- 5182e96772bf是centos鏡像的id
本例中,全部安裝程序都放在了宿主機的/opt/software/目錄下,如今須要將其掛載到容器的/mnt/software/目錄下。初始命令表示一旦容器啓動,須要運行的命令,此時使用「/bin/bash」,表示啓動後直接進入bash shell。centos
四、安裝軟件tomcat
cd /mnt/software,能夠看到咱們提早放置好的安裝包bash
jdk安裝:tar -zxf /mnt/software/jdk-8u152-linux-x64.tar.gz -C /opt
tomcat安裝:tar -zxf /mnt/software/apache-tomcat-8.0.53.tar.gz -C /opt
五、編寫運行腳本
touch /root/run.sh
vi /root/run.sh
編輯以下內容到腳本中
#!/bin/bash export JAVA_HOME=/opt/jdk1.8.0_152/ export PATH=$JAVA_HOME/bin:$PATH sh /opt/apache-tomcat-8.0.53/bin/catalina.sh run
爲運行腳本添加執行權限: chmod u+x /root/run.sh
六、退出容器,建立新鏡像
以上步驟完成後,輸入exit退出容器,docker ps -a,能夠看到剛剛修改好的容器,記住容器id
使用如下命令,根據某個「容器 ID」來建立一個新的鏡像 docker commit containerID mytomcat:
1.0
建立完成後輸入 docker images,能夠看到咱們修改後的鏡像
七、根據咱們建立的tomcat鏡像,啓動對應的容器
docker run -d -p
9999
:
8080
-v /opt/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:
1.0
/root/run.sh
-
-d:表示以「守護模式」執行/root/run.sh腳本,此時 Tomcat 控制檯不會出如今輸出終端上。
-
-p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射爲宿主機的 9999 端口,這樣就向外界暴露了 9999 端口,可經過 Docker 網橋來訪問容器內部的 8080 端口了。
-
-v:表示須要將本地哪一個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>,咱們的web項目的jar能夠放在/opt/webapps/下,重啓容器,咱們的應用就啓動起來了
-
--name:表示容器名稱,用一個有意義的名稱命名便可。