1.使用原有旧版tomcat镜像,制作新版官方tomcat镜像
示例需求:
在tomcat修改文件conf/server.xml中的Connector模块下添加参数 maxHttpHeadersize="2000"
并升级tomcat版本至8.5.82,制作一个新镜像
镜像容器内的文件传到本机操作指引:
1、docker images|grep tomcat #查看tomcat基础镜像id
注:使用docker run -it 镜像id /bin/bash #进入容器命令,查看文件路径
2、本机命令行敲:docker cp 镜像id:/容器内文件路径 /本机路径
正文
编写Dockerfile:
FROM kylin-tomcat:8.5.81 #基于kylin-tomcat:8.5.81做修改,此处为旧版包版本号
WORKDIR /home/admin #WORKDIR 指令为 Dockerfile 中指令设置工作目录。
ENV PWD /home/admin #添加固定路径
ADD rm -rf /home/admin/ #删除镜像内,旧版本包内容
ADD apache-tomcat-8.5.82.tar.gz /home/admin #解压新版本包到/home/admin路径下
COPY server.xml /home/admin/apache-tomcat-8.5.82/conf/
#复制本机当前路径修改好的server.xml到/home/admin/apache-tomcat-8.5.82#此处需修改为新包名/conf/下
ENV TOMCAT_VERSION 8.5.82 #添加环境变量版本信息
EXPOSE 8080 #端口
CMD ["/home/admin/apache-tomcat-8.5.82/bin/catalina.sh","run"] #默认运行检查脚本
#在当前路径制作镜像
docker build -t kylin-tomcat-20480:8.5.82 . #名字自取,当前路径有个点
2.容器内修改文件打包成新tomcat镜像
#查看原有tomcat镜像id
docker images |grep kylin-tomcat
#运行tomcat容器
docker run --name docker-tomcat -d -p 8080:8080 镜像id #需后台运行加-d参数,否则打包的镜像无法使用
#进入容器
docker exec -it 镜像id bash
进入容器命令行修改server.xml文件:
vi /home/admin/apache-tomcat-8.5.81/conf/server.xml
在Connector模块下添加参数 maxHttpHeadersize="20480"
保存文件
复制命令行开头的容器id
退出exit
docker commit 容器id kylin-tomcat-20480:8.5.82
修改所有应用的Dockerfile重新打包发布
#打包命令
Docker save -o #保存根路径加包名#/root/kylin-tomcat-20480:8.5.82.tar #镜像名字#kylin-tomcat-20480:8.5.82
3.使用官方安装包制作镜像
制作Tomcat镜像的步骤如下:
官方网站:Apache Tomcat® - Welcome!下载Tomcat安装包并解压。
在Tomcat安装目录下创建Dockerfile文件。
在Dockerfile文件中编写以下内容:
FROM openjdk:8-jdk-alpine
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
WORKDIR $CATALINA_HOME
COPY apache-tomcat-10.1.5.tar.gz $CATALINA_HOME
RUN tar -xvf apache-tomcat-10.1.5.tar.gz
EXPOSE 8080
CMD ["catalina.sh", "run"]
其中,FROM指定了基础镜像为openjdk:8-jdk-alpine,ENV设置了环境变量,WORKDIR指定了工作目录,COPY将Tomcat安装包复制到容器中,RUN解压Tomcat安装包,EXPOSE指定了容器对外暴露的端口,CMD指定了容器启动时运行的命令。
在Dockerfile所在目录下执行以下命令,构建镜像:
docker build -t tomcat-10.1.5 .
其中,tomcat-10.1.5为镜像名称。
构建完成后,可以使用以下命令运行容器:
docker run -d -p 8080:8080 tomcat-10.1.5
其中,-d参数表示容器在后台运行,-p参数将容器内部的8080端口映射到主机的8080端口,tomcat为镜像名称。
版权归原作者 HuoYingTaDie 所有, 如有侵权,请联系我们删除。