docker筆記17-Dockerfile案例-自定義tomcat映象
1、建立目錄
[root@t-docker chenzx]# mkdir tomcat9
2、在上述目錄下touch c.txt,為了演示copy指令的功能
[root@t-docker tomcat9]# touch c.txt
3、將jdk和tomcat安裝的壓縮包複製進上一步目錄
[root@t-docker tomcat9]# ls atlassian-confluence-6.11.0.tar.gz c.txt jdk1.8.0_65.tar.gz
4、新建Dockerfile檔案
[root@t-docker tomcat9]# cat Dockerfile FROM centos MAINTAINER chenzx #把宿主機當前上下文的c.txt複製到容器/opt路徑下 COPY c.txt /opt/container.txt #用ADD指令把java和tomcat壓縮包新增到容器中,並自動解壓 ADD atlassian-confluence-6.11.0.tar.gz /opt ADD jdk1.8.0_65.tar.gz /opt #安裝vim編輯器 RUN yum -y install vim #設定工作訪問時候的WORKDIR路徑,登入落腳點 ENV MYPATH /opt WORKDIR $MYPATH #配置java與tomcat環境變數 ENV JAVA_HOME /opt/jdk1.8.0_65 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /opt/atlassian-confluence-6.11.0 ENV CATALINA_BASE /opt/atlassian-confluence-6.11.0 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器執行時監聽的埠 EXPOSE 8080 #啟動時執行tomcat #ENTRYPOINT ["/opt/atlassian-confluence-6.11.0/bin/startup.sh"] #CMD ["/opt/atlassian-confluence-6.11.0/bin/catalina.sh","run"] CMD /opt/atlassian-confluence-6.11.0/bin/startup.sh && tail -F /opt/atlassian-confluence-6.11.0/logs/catalina.out
5、構建
[root@t-docker tomcat9]# docker build -t tomcat9 . Sending build context to Docker daemon 719MB Step 1/15 : FROM centos ---> 5182e96772bf Step 2/15 : MAINTAINER chenzx ---> Running in d04f35bb304d Removing intermediate container d04f35bb304d ---> b1535d029856 Step 3/15 : COPY c.txt /opt/container.txt ---> ef3569b7b95d Step 4/15 : ADD atlassian-confluence-6.11.0.tar.gz /opt ---> 0aed885f1740 Step 5/15 : ADD jdk1.8.0_65.tar.gz /opt ---> 56ef4a5d806c Step 6/15 : RUN yum -y install vim ---> Running in 96d23e66cbc6 Loaded plugins: fastestmirror, ovl Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com Step 7/15 : ENV MYPATH /opt ---> Running in f8b147007a67 Removing intermediate container f8b147007a67 ---> 88cd40f1df40 Step 8/15 : WORKDIR $MYPATH ---> Running in 55ba5490990a Removing intermediate container 55ba5490990a ---> 2bdeb9172d40 Step 9/15 : ENV JAVA_HOME /opt/jdk1.8.0_65 ---> Running in e5edb170b825 Removing intermediate container e5edb170b825 ---> 2b315b03c617 Step 10/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ---> Running in a3c6d7e8a539 Removing intermediate container a3c6d7e8a539 ---> 5a49c2cefc2a Step 11/15 : ENV CATALINA_HOME /opt/atlassian-confluence-6.11.0 ---> Running in 6c105a803c9c Removing intermediate container 6c105a803c9c ---> 8a4879a4d399 Step 12/15 : ENV CATALINA_BASE /opt/atlassian-confluence-6.11.0 ---> Running in 894570c08307 Removing intermediate container 894570c08307 ---> 843b28783e33 Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin ---> Running in 14ea7d7ae882 Removing intermediate container 14ea7d7ae882 ---> 2fbdf4cb96b6 Step 14/15 : EXPOSE 8080 ---> Running in 0b55f91baea1 Removing intermediate container 0b55f91baea1 ---> 340b421dfc43 Step 15/15 : CMD /opt/atlassian-confluence-6.11.0/bin/startup.sh && tail -F /opt/atlassian-confluence-6.11.0/logs/catalina.out ---> Running in 551c8481362e Removing intermediate container 551c8481362e ---> 4edb0a9de409 Successfully built 4edb0a9de409 Successfully tagged tomcat9:latest [root@t-docker tomcat9]#
[root@t-docker tomcat9]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat9 latest 4edb0a9de409 3 minutes ago 1.3GB
6、run
[root@t-docker tomcat9]#docker run -d -p 9080:8090 --name myt9 \ -v /volume/test:/opt/atlassian-confluence-6.11.0/test \ -v /volume/tomcatlogs:/opt/atlassian-confluence-6.11.0/logs \ --privileged=true \ tomcat9
-v就是資料卷的意思,volume
[root@t-docker tomcat9]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a4174d4abeba tomcat9 "/bin/sh -c '/opt/at…" 7 seconds ago Up 6 seconds 8080/tcp, 0.0.0.0:9080->8090/tcp myt9
7、驗證
[root@t-docker tomcat9]# docker exec a4174d4abeba ls -l total 0 drwxr-xr-x 1 1000 1000 42 Sep 2 03:41 atlassian-confluence-6.11.0 -rw-r--r-- 1 root root 0 Sep 2 02:38 container.txt drwxr-xr-x 9 root root 268 Feb 24 2016 jdk1.8.0_65 drwxr-x--- 2 root root 102 Sep 2 03:41 logs
8、綜合前述的容器卷測試web服務的釋出
以後發版,就在宿主機上的/volume/test裡面發版即可,具體測試略。
[root@t-docker tomcat9]# cd /volume/test
[root@t-docker test]# mkdir WEB-INF
[root@t-docker test]# cd WEB-INF/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2213401/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- docker筆記14-Dockerfile案例-自定義mycentosDocker筆記CentOS
- Macos自定義Docker Ubuntu映象MacDockerUbuntu
- docker官方mysql映象自定義配置DockerMySql
- 『現學現忘』Docker基礎 — 39、實戰:自定義Tomcat9映象DockerTomcat
- Docker自定義映象上傳阿里雲Docker阿里
- Docker筆記(四):Docker映象管理Docker筆記
- Docker筆記一之映象Docker筆記
- docker學習筆記(3)- 映象Docker筆記
- Docker--建立tomcat+JDK映象併發布web專案例項DockerTomcatJDKWeb
- 筆記docker的基本啟動映象筆記Docker
- 通過容器提交映象(docker commit)以及推送映象(docker push)筆記DockerMIT筆記
- Docker 入門系列四:Dockerfile-自定義 CentOS7 映象DockerCentOS
- docker筆記15-Dockerfile案例-CMD、ENTRYPOINT案例Docker筆記
- docker筆記16-Dockerfile案例-ONBUILD命令案例Docker筆記UI
- 使用 Dockerfile 自定義 Nginx 映象DockerNginx
- 自定義一個kaniko映象
- 『現學現忘』Docker基礎 — 35、實戰:自定義CentOS映象DockerCentOS
- Docker筆記(五):整一個自己的映象Docker筆記
- Docker學習筆記:映象、容器、資料卷Docker筆記
- docker筆記35-資源指標API及自定義指標APIDocker筆記指標API
- docker筆記18-案例-安裝mysqlDocker筆記MySql
- C語言筆記——自定義型別C語言筆記型別
- Docker學習筆記 - 第四篇:映象倉庫Docker筆記
- docker學習筆記-啟動映象輸入引數Docker筆記
- Pytest學習筆記6-自定義標記mark筆記
- iOS學習筆記--PresentedVC自定義彈窗iOS筆記
- 筆記3:自定義註解的實現筆記
- Docker學習筆記(三):Dockerfile及多步驟構建映象Docker筆記
- 【實踐】Docker for Windows 製作tomcat 映象並上傳至 docker 倉庫DockerWindowsTomcat
- Tomcat學習筆記Tomcat筆記
- 《Haskell趣學指南》筆記之自定義型別Haskell筆記型別
- cnetos7 ISO 映象自定義製作
- docker 筆記Docker筆記
- Docker筆記Docker筆記
- 筆記:Docker筆記Docker
- Mac 上的 Tomcat 配置及自定義 JRE 環境MacTomcat
- 玩轉docker之自定義PHP容器DockerPHP
- 中介軟體自定義檢測 JWT 並通過自定義異常丟擲錯誤--筆記JWT筆記