DockerFIle构建Tomcat镜像

第一章 docker环境部署

第二章 Centos部署

# ------------------------ docker centos ------------------------

docker pull centos:7.2.1511

# docker run <相关参数> <镜像 ID> <初始命令>

# docker run -itv /root/software/:/mnt/software/ 9aec5c5fe4ba /bin/bash

# 执行exit退出当前容器(这里指的是docker的centos7容器)

exit

其中,相关参数包括:

● -d:表示以后台运行

● -i:表示以“交互模式”运行容器

● -t:表示容器启动后会进入其命令行

● -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

第三章 DockerFIle部署Tomcat

1、下载以下安装文件,并解压 docker.centos5.zip。

注意:如果以下步骤自己下载嫌麻烦,你也可以直接前往这里“https://download.youkuaiyun.com/download/kanhcj86/13451497”进行下载。

apache-maven-3.6.0:maven安装包

apache-tomcat-8.5.57:tomcat安装包

font:字体包

git-2.22.0-rc0:git安装包

jdk1.8.0_60:java环境安装包

以下附加备注,如果需要做tomcat优化,可以参考如下

为了防止Tomcat吃内存,在tomcat/bin/catalina.sh 的位置cygwin=false前 增加以下内容:

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"

1. -Xms 为jvm启动时分配的内存,比如-Xms200m,表示分配200M

2. -Xmx 为jvm运行过程中分配的最大内存,比如-Xms500m,表示jvm进程最多只能够占用500M内存

3. -Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M

示例表格:

Total Memory

-Xms

-Xmx

-Xss

Spare Memory

JDK

Thread Count

1024M

256M

256M

256K

768M

1.4

3072

1024M

256M

256M

256K

768M

1.5

768

上面的表格只是大致的估计了下在特定内存条件下可以在java中创建的最大线程数。随着-Xmx的加大,空闲的内存数就更少,那么可以创建的线程也就更少,同时在JDK1.4和1.5版本不同下,可创建的线程数也会根据每个线程的内存大小不同而不同。

tomcat调优server.xml

<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="1000"
               minSpareThreads="100"
               maxSpareThreads="1000"
               minProcessors="100"
               maxProcessors="1000"
               connectionTimeout="20000"
               acceptCount="1000"
               redirectPort="8443" />

2、构建镜像

# ------------------------ docker tomcat ------------------------
# 初始化docker镜像工作区
mkdir -p /usr/local/soft/mirror/centos
# webapps目录将映射为tomcat容器配置的应用程序目录
# 进入创建的tomcat目录,创建Dockerfile
cd /usr/local/soft/mirror/centos/

# 将apache-tomcat-8.5.24.zip、jdk-8u60-linux-x64.gz、font.zip上传到/usr/local/soft/mirror/centos/目录下并解压。
# 获取你可以直接下载docker.centos5.zip(上文中提到了下载地址)后按照如下步骤操作即可
yum install zip unzip
unzip docker.centos5.zip
cd /usr/local/soft/mirror/centos/


# ----------- 直接解压docker.centos5.zip的可以直接跳过此步骤 -----------
# ------------------------ docker file ------------------------
# 通过 Dockerfile 构建
touch Dockerfile6

Dockerfile6构建文件内容如下(# ----------- 直接解压docker.centos5.zip的可以直接跳过此步骤 -----------):

# 自定义基础镜像,可以是name也可以是镜像IMAGE ID
FROM centos:7.2.1511
# 作者
MAINTAINER rocky
# 设置环境变量:表示该镜像模板的最后更新时间
ENV REFRESHED_AT 2019-06-13

#COPY CentOS-Base.repo /etc/yum.repos.d/
# 宿主机与容器时间同步
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/shanghai" > /etc/timezone

# 设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN rpm --rebuilddb && yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export LANG=zh_CN.UTF-8
#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
RUN yum -y groupinstall chinese-support
ENV LANG=en_US.UTF-8

# 设置字体(具体详见Install font)
RUN mkdir -p /usr/share/fonts
RUN mkdir /usr/share/fonts/chinese
ADD font /usr/share/fonts/chinese
RUN yum install -y mkfontscale
RUN rpm --rebuilddb && yum install -y fontconfig
RUN mkfontscale
RUN mkfontdir
RUN rpm --rebuilddb && yum -y install ttmkfdir
RUN ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
RUN echo '<dir>/usr/share/fonts/chinese</dir>' >>/etc/fonts/fonts.conf
RUN fc-cache

# install jdk
RUN mkdir -p /usr/local/soft
# 将jdk1.8.0_60添加到镜像centos的/usr/local/soft/目录下,并命名为jdk
ADD jdk1.8.0_60 /usr/local/soft/jdk
ENV JAVA_HOME /usr/local/soft/jdk
RUN chmod +x /usr/local/soft/jdk/bin/java

# install tomcat
# 将apache-tomcat-8.5.57添加到镜像centos的/usr/local/soft/目录下,并命名为tomcat
ADD apache-tomcat-8.5.57 /usr/local/soft/tomcat
RUN chmod +x /usr/local/soft/tomcat/bin/catalina.sh
ENV CATALINA_HOME /usr/local/soft/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
# 暴露8080端口
#EXPOSE 8080

# 创建自定义脚本
RUN touch /usr/local/soft/tomcat/bin/myStartUp.sh
RUN echo '#!/bin/bash' >>/usr/local/soft/tomcat/bin/myStartUp.sh
RUN echo 'bash /usr/local/soft/tomcat/bin/startup.sh' >>/usr/local/soft/tomcat/bin/myStartUp.sh
RUN echo 'tail -f /usr/local/soft/tomcat/logs/catalina.out' >>/usr/local/soft/tomcat/bin/myStartUp.sh
RUN chmod +x /usr/local/soft/tomcat/bin/myStartUp.sh

#启动时运行tomcat
#CMD ["/usr/local/soft/tomcat/bin/catalina.sh","run"]
# 为了实现docker容器部署的tomcat应用,生成catalina.out文件
CMD ["/usr/local/soft/tomcat/bin/myStartUp.sh"]

Dockerfile6文件内容保存好后,继续执行

# 通过Dockerfile创建一个镜像(注意:一定要进入目录后构建)
cd /usr/local/soft/mirror/centos/
docker build -t centos7-tomcat8-6 . -f /usr/local/soft/mirror/centos/Dockerfile6

# 如果报错:Cannot find a valid baseurl for repo: base/7/x86_64其实问题很简单.就是centos的连线没开.
# yum -y install tigervnc-server

# 检查镜像是否创建成功
docker images|grep centos7-tomcat8-6

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗名仕

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值