首先创建一个文件夹,在里面准备jdk和tomcat
[root@localhost build]# ls
apache-tomcat-8.5.31.tar.gz jdk-8u11-linux-x64.tar.gz test.txt
在这个文件夹新建Dockerfile
# 以centos7为基础
FROM centos:7
MAINTAINER lgz<120218355@qq.com>
ENV WORK_PATH /usr/local/
# 指定进入容器时的工作目录
WORKDIR $WORK_PATH
# 复制文件
COPY test.txt /usr/local/test.txt
RUN mkdir -p /usr/lib/jvm/
# 添加jdk和tomcat,并解压到指定目录
ADD apache-tomcat-8.5.31.tar.gz /usr/local/
ADD jdk-8u11-linux-x64.tar.gz /usr/lib/jvm/
# 配置环境变量
ENV JAVA_HOME /usr/lib/jvm/jdk1.8.0_11
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.31
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME:lib
EXPOSE 8080
#启动容器就让tomcat跑起来
CMD ["catalina.sh","run"]
构建新镜像
[root@localhost files]# docker build -t mytomcat8 .
Sending build context to Docker daemon 1.165GB
Step 1/15 : FROM centos:7
---> 5e35e350aded
Step 2/15 : MAINTAINER lgz<120218355@qq.com>
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in a69f01982535
Removing intermediate container a69f01982535
---> af6036dfd90f
Step 3/15 : ENV WORK_PATH /usr/local/
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 2a12b9964895
Removing intermediate container 2a12b9964895
---> 14dcfdb03207
Step 4/15 : WORKDIR $WORK_PATH
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 3b35505c847f
Removing intermediate container 3b35505c847f
---> f0706a9f3e3f
Step 5/15 : COPY c.txt /usr/local/c.txt
---> 35593f253ca9
Step 6/15 : RUN mkdir -p /usr/lib/jvm/
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 3bc2a47605fb
Removing intermediate container 3bc2a47605fb
---> a3d7e49fccd7
Step 7/15 : ADD apache-tomcat-8.5.31.tar.gz /usr/local/
---> 3f60a92df85d
Step 8/15 : ADD jdk-8u11-linux-x64.tar.gz /usr/lib/jvm/
---> a513a15f12db
Step 9/15 : ENV JAVA_HOME /usr/lib/jvm/jdk1.8.0_11
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 96dcc82e84a5
Removing intermediate container 96dcc82e84a5
---> deee011858dd
Step 10/15 : ENV JRE_HOME $JAVA_HOME/jre
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 9cf58a47e2d3
Removing intermediate container 9cf58a47e2d3
---> 7894736df076
Step 11/15 : ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 7c678ef3c29a
Removing intermediate container 7c678ef3c29a
---> 3b00ee7244bd
Step 12/15 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.31
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 25d8d55b8421
Removing intermediate container 25d8d55b8421
---> ac6c8ad1c833
Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME:lib
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 2abc78da47e2
Removing intermediate container 2abc78da47e2
---> 49a7c1edcc1c
Step 14/15 : EXPOSE 8080
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 92cddddeff20
Removing intermediate container 92cddddeff20
---> 61e9fb37c588
Step 15/15 : CMD ["catalina.sh","run"]
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 0627ddcc1003
Removing intermediate container 0627ddcc1003
---> e72700acc770
Successfully built e72700acc770
Successfully tagged mytomcat8:latest
运行容器
[root@localhost files]# docker run -it -p 8080:8080 mytomcat8
WARNING: IPv4 forwarding is disabled. Networking will not work.
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.31
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.31
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.31/temp
Using JRE_HOME: /usr/lib/jvm/jdk1.8.0_11/jre
Using CLASSPATH: /usr/local/apache-tomcat-8.5.31/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.31/bin/tomcat-juli.jar
26-Nov-2019 03:22:08.231 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.31
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 27 2018 20:24:25 UTC
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.31.0
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-862.el7.x86_64
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
26-Nov-2019 03:22:08.232 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/jdk1.8.0_11/jre
26-Nov-2019 03:22:08.233 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_11-b12
26-Nov-2019 03:22:08.233 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
26-Nov-2019 03:22:08.233 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/apache-tomcat-8.5.31
26-Nov-2019 03:22:08.233 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/apache-tomcat-8.5.31
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.31/conf/logging.properties
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/apache-tomcat-8.5.31
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/apache-tomcat-8.5.31
26-Nov-2019 03:22:08.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.31/temp
26-Nov-2019 03:22:08.244 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]
26-Nov-2019 03:22:08.569 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
26-Nov-2019 03:22:08.645 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
26-Nov-2019 03:22:08.658 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
26-Nov-2019 03:22:08.673 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
26-Nov-2019 03:22:08.674 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1136 ms
26-Nov-2019 03:22:08.731 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
26-Nov-2019 03:22:08.731 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.31
26-Nov-2019 03:22:08.768 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-8.5.31/webapps/ROOT]
26-Nov-2019 03:22:09.273 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-8.5.31/webapps/ROOT] has finished in [505] ms
26-Nov-2019 03:22:09.274 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-8.5.31/webapps/docs]
26-Nov-2019 03:22:09.314 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-8.5.31/webapps/docs] has finished in [40] ms
26-Nov-2019 03:22:09.314 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-8.5.31/webapps/examples]
26-Nov-2019 03:22:09.735 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-8.5.31/webapps/examples] has finished in [421] ms
26-Nov-2019 03:22:09.735 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-8.5.31/webapps/host-manager]
26-Nov-2019 03:22:09.799 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-8.5.31/webapps/host-manager] has finished in [64] ms
26-Nov-2019 03:22:09.800 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-8.5.31/webapps/manager]
26-Nov-2019 03:22:09.846 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-8.5.31/webapps/manager] has finished in [46] ms
26-Nov-2019 03:22:09.853 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
26-Nov-2019 03:22:10.002 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
26-Nov-2019 03:22:10.021 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1347 ms
使用exec进入容器,查看刚才所写的构建命令中,指定的工作目录与复制text.txt文件是否成功
[root@localhost build]# docker exec -it 5720b8a3432f /bin/bash
[root@5720b8a3432f local]# pwd
/usr/local
[root@5720b8a3432f local]# ll
total 0
drwxr-xr-x. 1 root root 42 Nov 26 03:21 apache-tomcat-8.5.31
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Oct 1 01:15 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
-rw-r--r--. 1 root root 0 Nov 26 03:45 test.txt