用Dockerfile創建tomcat鏡像

用Dockerfile創建tomcat鏡像

1.準備軟件

  1. jdk 例如:jdk-8u211-linux-x64.tar.gz
  2. 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鏡像

  1. 輸入命令 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
  1. 查看鏡像 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
  1. 上傳鏡像
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
  1. 登錄docker鏡像管理網站查看
    在這裏插入圖片描述
  2. 運行鏡像 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

啓動成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章