用Dockerfile创建tomcat镜像
1.准备软件
- jdk 例如:jdk-8u211-linux-x64.tar.gz
- tomcat 例如:apache-tomcat-8.5.42.tar.gz
2.创建Dockerfile文件
#pull down centos image
FROM centos
#maintainer
MAINTAINER junpeng li
#copy jdk and tomcat into image
ADD ./software/apache-tomcat-8.5.42.tar.gz /root
ADD ./software/jdk-8u211-linux-x64.tar.gz /root
#set environment variable
ENV JAVA_HOME /root/jdk1.8.0_211
ENV PATH $JAVE_HOME/bin:$PATH
#define entry point which will be run first when the container starts up
ENTRYPOINT /root/apache-tomcat-8.5.42/bin/startup.sh && tail -F /root/apache-tomcat-8.5.42/logs/catalina.out
#port
EXPOSE 8080
Dockerfile文件在此不做过多解释
3.文件目录结构
tomcat-linux
├── Dockerfile
└── software
├── apache-tomcat-8.5.42.tar.gz
└── jdk-8u211-linux-x64.tar.gz
4.编译docker镜像
- 输入命令 docker build -t [your docker repository]/tomcat-centos:latest --rm=true .
docker build -t [your docker repository]/tomcat-centos:latest --rm=true .
控制台输入信息
Sending build context to Docker daemon 203.2 MB
Step 1/8 : FROM centos
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
8ba884070f61: Pull complete
Digest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c
Status: Downloaded newer image for docker.io/centos:latest
---> 9f38484d220f
Step 2/8 : MAINTAINER
---> Running in 590279357e0f
---> dc1051088699
Removing intermediate container 590279357e0f
Step 3/8 : ADD ./software/apache-tomcat-8.5.42.tar.gz /root
---> 3232f464f5bd
Removing intermediate container 38da2d247afb
Step 4/8 : ADD ./software/jdk-8u211-linux-x64.tar.gz /root
---> 0814907d3ea3
Removing intermediate container 2752ef0c0162
Step 5/8 : ENV JAVA_HOME /root/jdk1.8.0_211
---> Running in ea245d055cb3
---> 60e0f5ef47be
Removing intermediate container ea245d055cb3
Step 6/8 : ENV PATH $JAVE_HOME/bin:$PATH
---> Running in f7bfae6c1966
---> 7f8beafdac9d
Removing intermediate container f7bfae6c1966
Step 7/8 : ENTRYPOINT /root/apache-tomcat-8.5.42/bin/startup.sh && tail -F /root/apache-tomcat-8.5.42/logs/catalina.out
---> Running in df82c957c213
---> f265472d1ccd
Removing intermediate container df82c957c213
Step 8/8 : EXPOSE 8080
---> Running in d9a375c1a2d8
---> 5e99fa939231
Removing intermediate container d9a375c1a2d8
Successfully built 5e99fa939231
- 查看镜像 docker images
docker images
控制台输出信息
REPOSITORY TAG IMAGE ID CREATED SIZE
[your docker repository]/tomcat-centos latest 5e99fa939231 3 minutes ago 617 MB
docker.io/centos latest 9f38484d220f 3 months ago 202 MB
- 上传镜像
docker push [your docker repository]/tomcat-centos:latest
控制台输出信息
The push refers to a repository [docker.io/[your docker repository]/tomcat-centos]
2eba6206d8f3: Pushed
796f67795dd7: Pushed
d69483a6face: Layer already exists
latest: digest: sha256:20836b342bb2e4f553fed3e77ef1dd38320b4ada1320886c0d979a8df8f11b7a size: 953
- 登录docker镜像管理网站查看
- 运行镜像 docker run -it [your docker repository]/tomcat-centos -port 8090:8080
docker run -it [your docker repository]/tomcat-centos -port 8090:8080
控制台输出命令
Using CATALINA_BASE: /root/apache-tomcat-8.5.42
Using CATALINA_HOME: /root/apache-tomcat-8.5.42
Using CATALINA_TMPDIR: /root/apache-tomcat-8.5.42/temp
Using JRE_HOME: /root/jdk1.8.0_211
Using CLASSPATH: /root/apache-tomcat-8.5.42/bin/bootstrap.jar:/root/apache-tomcat-8.5.42/bin/tomcat-juli.jar
Tomcat started.
04-Jul-2019 06:36:23.787 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.42
04-Jul-2019 06:36:23.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 4 2019 20:29:04 UTC
04-Jul-2019 06:36:23.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.42.0
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-957.21.3.el7.x86_64
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /root/jdk1.8.0_211/jre
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_211-b12
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /root/apache-tomcat-8.5.42
04-Jul-2019 06:36:23.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /root/apache-tomcat-8.5.42
04-Jul-2019 06:36:23.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/root/apache-tomcat-8.5.42/conf/logging.properties
04-Jul-2019 06:36:23.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
04-Jul-2019 06:36:23.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
04-Jul-2019 06:36:23.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
04-Jul-2019 06:36:23.794 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
04-Jul-2019 06:36:23.794 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
04-Jul-2019 06:36:23.794 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/root/apache-tomcat-8.5.42
04-Jul-2019 06:36:23.794 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/root/apache-tomcat-8.5.42
04-Jul-2019 06:36:23.795 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/root/apache-tomcat-8.5.42/temp
04-Jul-2019 06:36:23.795 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]
04-Jul-2019 06:36:23.997 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
04-Jul-2019 06:36:24.015 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
04-Jul-2019 06:36:24.033 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
04-Jul-2019 06:36:24.035 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
04-Jul-2019 06:36:24.037 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 853 ms
04-Jul-2019 06:36:24.078 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
04-Jul-2019 06:36:24.079 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.42
04-Jul-2019 06:36:24.093 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Jul-2019 06:36:24.108 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
04-Jul-2019 06:36:24.112 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 74 ms
启动成功