用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

启动成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的Dockerfile示例,用于构建Tomcat 8镜像: ``` FROM ubuntu:18.04 LABEL maintainer="your-name <your-email>" # 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 安装必要的软件包 RUN apt-get update && \ apt-get install -y wget curl tar && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # 下载并解压Tomcat ENV TOMCAT_MAJOR=8 \ TOMCAT_VERSION=8.5.69 \ CATALINA_HOME=/usr/local/tomcat RUN wget --quiet --no-cookies https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz && \ tar xzf apache-tomcat-$TOMCAT_VERSION.tar.gz && \ rm apache-tomcat-$TOMCAT_VERSION.tar.gz && \ mv apache-tomcat-$TOMCAT_VERSION /usr/local/tomcat && \ chmod +x $CATALINA_HOME/bin/*.sh # 添加Tomcat用户 RUN groupadd tomcat && \ useradd -g tomcat -d $CATALINA_HOME -s /bin/false tomcat && \ chown -R tomcat:tomcat $CATALINA_HOME # 配置Tomcat EXPOSE 8080 CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] ``` 在这个Dockerfile中,我们首先基于Ubuntu 18.04创建了一个Docker镜像。然后,我们安装了一些必要的软件包,例如wget、curl和tar。接下来,我们下载并解压Tomcat 8,并将其移动到`/usr/local/tomcat`目录中。接着,我们添加了一个名为tomcat的用户,并将所有权分配给`/usr/local/tomcat`目录。最后,我们暴露了Tomcat的默认端口8080,并使用`/usr/local/tomcat/bin/catalina.sh run`命令来启动Tomcat。 要构建Tomcat 8镜像,请运行以下命令: ``` docker build -t my-tomcat8 . ``` 这将在当前目录下构建名为`my-tomcat8`的新镜像。您可以通过运行以下命令来启动该容器: ``` docker run -p 8080:8080 my-tomcat8 ``` 这将在本地主机上的8080端口上启动Tomcat 8容器,您可以通过访问`http://localhost:8080`来访问Tomcat 8的默认页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值