日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker 使用Dockerfile构建tomcat镜像

發(fā)布時間:2025/7/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker 使用Dockerfile构建tomcat镜像 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Dockerfile概念:

鏡像的定制實際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu)建、操作的命令都寫入一個腳本,用這個腳本來構(gòu)建、定制鏡像,那么之前提及的無法重復的問題、鏡像構(gòu)建透明性的問題、體積的問題就都會解決。這個腳本就是 Dockerfile。

Dockerfile 是一個文本文件,其內(nèi)包含了一條條的指令(Instruction),每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當如何構(gòu)建。

代碼:

Centos7.2中安裝jdk和tomcat

FROM centos:7.2.1511 MAINTAINER hongdada "hongdaqi159505@gmail.com"# 設(shè)置當前工具目錄 # 該命令不會新增鏡像層 WORKDIR /home# 安裝必要的工具 RUN yum install -y wget && \rpm --rebuilddb && \yum install -y tar && \wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz && \tar -xvzf jdk-8u131-linux-x64.tar.gz && \wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz && \tar -xvzf apache-tomcat-8.5.32.tar.gz && \ mv apache-tomcat-8.5.32/ tomcat && \rm -f jdk-8u131-linux-x64.tar.gz && \rm -f apache-tomcat-8.5.32.tar.gz && \ yum clean all# 設(shè)置環(huán)境變量 ENV JAVA_HOME /home/jdk1.8.0_131 ENV CATALINA_HOME /home/tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin# 暴露tomcat 8080端口 EXPOSE 8080ENTRYPOINT /home/tomcat/bin/startup.sh && tail -f /home/tomcat/logs/catalina.out# 創(chuàng)建容器啟動tomcat CMD ["/home/tomcat/bin/startup.sh"]

利用這個Dockerfile構(gòu)建鏡像命令:

[root@localhost tomcat]# docker build -t centos:v1 .

注意后面有個點 .

我們這里使用的是直接下載,但是一般生產(chǎn)不會這樣,會利用已經(jīng)下載好的安裝包,這樣在build的過程中會報錯
找不到tomcat或者jdk路徑,這事可以在build時用指定Dockerfile路徑試試。

docker build -t tomcat:test1 /home/zyt/tomcat-docker/Dockerfile .

上面的構(gòu)建命令執(zhí)行結(jié)果:

[root@localhost tomcat]# docker build -t centos:v1 . Sending build context to Docker daemon 3.072 kB Step 1/10 : FROM centos:7.2.1511 Trying to pull repository docker.io/library/centos ... sha256:7c47810fd05ba380bd607a1ece3b4ad7e67f5906b1b981291987918cb22f6d4d: Pulling from docker.io/library/centos f2d1d709a1da: Pull complete Digest: sha256:7c47810fd05ba380bd607a1ece3b4ad7e67f5906b1b981291987918cb22f6d4d Status: Downloaded newer image for docker.io/centos:7.2.1511---> 0a2bad7da9b5 Step 2/10 : MAINTAINER hongdada "hongdaqi159505@gmail.com"---> Running in c6da5f881cc8---> 69b28335aece Removing intermediate container c6da5f881cc8 Step 3/10 : WORKDIR /home---> 7c45fd2b7596 Removing intermediate container d1d433a16ef9 Step 4/10 : RUN yum install -y wget && rpm --rebuilddb && yum install -y tar && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz && tar -xvzf jdk-8u131-linux-x64.tar.gz && wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz && tar -xvzf apache-tomcat-8.5.32.tar.gz && mv apache-tomcat-8.5.32/ tomcat && rm -f jdk-8u131-linux-x64.tar.gz && rm -f apache-tomcat-8.5.32.tar.gz && yum clean all---> Running in 7256e59ff024..................... Loaded plugins: fastestmirror Cleaning repos: base extras updates Cleaning up everything Cleaning up list of fastest mirrors---> 10720ac1a433 Removing intermediate container 7256e59ff024 Step 5/10 : ENV JAVA_HOME /home/jdk1.8.0_131---> Running in 9dda120b45bc---> 3c5390a1e18c Removing intermediate container 9dda120b45bc Step 6/10 : ENV CATALINA_HOME /home/tomcat---> Running in 55b9ca9b46f6---> 23dd4d3c4e81 Removing intermediate container 55b9ca9b46f6 Step 7/10 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin---> Running in 8b79ea2a53bc---> 1403401143c8 Removing intermediate container 8b79ea2a53bc Step 8/10 : EXPOSE 8080---> Running in c1faa9022bf7---> bde367d955e3 Removing intermediate container c1faa9022bf7 Step 9/10 : ENTRYPOINT /home/tomcat/bin/startup.sh && tail -f /home/tomcat/logs/catalina.out---> Running in e0f7216cdefc---> ff984964a08f Removing intermediate container e0f7216cdefc Step 10/10 : CMD /home/tomcat/bin/startup.sh---> Running in 27eb2056c888---> 86bb3ec89384 Removing intermediate container 27eb2056c888 Successfully built 86bb3ec89384

可以看出一共分成了10步,最后Successfully

查看鏡像:

[root@localhost tomcat]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos v1 86bb3ec89384 3 minutes ago 595 MB <none> <none> a19d7e86dfb2 33 minutes ago 191 MB docker.io/nginx latest 5699ececb21c 8 days ago 109 MB docker.io/ubuntu 16.04 5e8b97a2a082 4 weeks ago 114 MB docker.io/centos latest 49f7960eb7e4 4 weeks ago 200 MB hongdada/nginx v3 c5cf58738d6b 4 weeks ago 109 MB

可以看出第一個就是剛剛構(gòu)建的centos

根據(jù)該鏡像啟動一個容器:

[root@localhost tomcat]# docker run -d -p 8088:8080 centos:v1 b445ecc8eb60634481404a88f3d9c017c88b122c431f1b70f3887dcce284eb18

查看:

[root@localhost tomcat]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b445ecc8eb60 centos:v1 "/bin/sh -c '/home..." 4 seconds ago Up 4 seconds 0.0.0.0:8088->8080/tcp suspicious_bassi

查看容器啟動日志:

root@localhost tomcat]# docker logs b4 Tomcat started. tail: unrecognized file system type 0x794c7630 for '/home/tomcat/logs/catalina.out'. please report this to bug-coreutils@gnu.org. reverting to polling 05-Jul-2018 13:55:21.422 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.32 05-Jul-2018 13:55:21.444 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 20 2018 19:50:35 UTC 05-Jul-2018 13:55:21.444 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.32.0 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-693.21.1.el7.x86_64 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /home/jdk1.8.0_131/jre 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_131-b11 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/tomcat 05-Jul-2018 13:55:21.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /home/tomcat 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/tomcat/conf/logging.properties 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/tomcat 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/home/tomcat 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/tomcat/temp 05-Jul-2018 13:55:21.446 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 05-Jul-2018 13:55:21.862 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 05-Jul-2018 13:55:21.899 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 05-Jul-2018 13:55:21.912 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 05-Jul-2018 13:55:21.913 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 05-Jul-2018 13:55:21.926 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1665 ms 05-Jul-2018 13:55:22.000 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 05-Jul-2018 13:55:22.000 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.32 05-Jul-2018 13:55:22.037 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/tomcat/webapps/ROOT] 05-Jul-2018 13:55:22.928 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/webapps/ROOT] has finished in [890] ms 05-Jul-2018 13:55:22.941 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/tomcat/webapps/docs] 05-Jul-2018 13:55:22.988 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/webapps/docs] has finished in [47] ms 05-Jul-2018 13:55:22.989 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/tomcat/webapps/examples] 05-Jul-2018 13:55:23.572 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/webapps/examples] has finished in [584] ms 05-Jul-2018 13:55:23.572 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/tomcat/webapps/host-manager] 05-Jul-2018 13:55:23.645 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/webapps/host-manager] has finished in [73] ms 05-Jul-2018 13:55:23.646 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/tomcat/webapps/manager] 05-Jul-2018 13:55:23.700 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/webapps/manager] has finished in [54] ms 05-Jul-2018 13:55:23.709 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 05-Jul-2018 13:55:23.751 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 05-Jul-2018 13:55:23.755 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1828 ms

最后查看8088端口是否可以訪問tomcat,我這邊是可以的,這邊就不貼效果圖了。

進入容器內(nèi)部進行查看:

[root@localhost tomcat]# docker exec -it b44 /bin/bash [root@b445ecc8eb60 home]# ll total 4 drwxr-xr-x. 8 10 143 4096 Mar 15 2017 jdk1.8.0_131 drwxr-xr-x. 1 root root 39 Jul 5 13:44 tomcat

?

參考:

https://blog.csdn.net/wo18237095579/article/details/80540571

https://ithelp.ithome.com.tw/articles/10191016

https://yeasy.gitbooks.io/docker_practice/image/build.html

http://oomusou.io/docker/dockerfile-dockercompose/

https://blog.csdn.net/boonya/article/details/74626431

https://steffan.cn/2017/02/10/how-to-build-a-Tomcat-image-with-Dockerfile-and-deploy-war/

https://www.jianshu.com/p/369e75f6303b

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Docker 使用Dockerfile构建tomcat镜像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。