zoukankan      html  css  js  c++  java
  • Docker —— 使用 Dockerfile 制作 Jdk + Tomcat 镜像

    一、准备好Jdk和Tomcat

    apache-tomcat-8.5.50.tar.gz
    jdk-8u212-linux-x64.tar.gz

    注意:

    • Jdk 和 Tomcat 记得从官网下载,否则制作出来的镜像容易出现不兼容问题。

        jdk1.8下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

        tomcat8下载:https://tomcat.apache.org/download-80.cgi

    • 准备修改好的 server.xml (修改连接和线程数),制作镜像时覆盖tomcat中的;

    • apache-tomcat-8.5.50.tar.gz、jdk-8u212-linux-x64.tar.gz、Dockerfile放在同一目录

    二、编写Dockerfile

    内容如下:

    # 指定操作的镜像
    FROM centos:7
    
    # 维护者信息
    MAINTAINER caoweixiong
    
    # 将 jdk 和 tomcat 添加到镜像centos的/usr/local/目录下
    ADD jdk-8u212-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-8.5.50.tar.gz /usr/local/
    
    # 覆盖相关文件
    COPY server.xml /usr/local/apache-tomcat-8.5.50/conf/
    
    # 添加环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_212
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.50
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
    ENV TZ="Asia/Shanghai"
    ENV JAVA_OPTS="
    -server 
    -Xms3g 
    -Xmx3g 
    -Xmn512m 
    -Xss512K 
    -Dfile.encoding=UTF-8 
    -verbose:gc 
    -XX:+UseConcMarkSweepGC 
    -XX:MaxTenuringThreshold=10 
    -XX:+ExplicitGCInvokesConcurrent 
    -XX:GCTimeRatio=19 
    -XX:+UseParNewGC 
    -XX:+UseCMSCompactAtFullCollection 
    -XX:CMSFullGCsBeforeCompaction=10 
    -XX:+CMSClassUnloadingEnabled 
    -XX:+CMSParallelRemarkEnabled 
    -XX:CMSInitiatingOccupancyFraction=50 
    -Xnoclassgc 
    -XX:SoftRefLRUPolicyMSPerMB=0"
    
    # 暴露8080端口
    EXPOSE 8080
    
    # 容器启动时运行tomcat
    CMD /usr/local/apache-tomcat-8.5.50/bin/catalina.sh run

    注:环境变量【JAVA_OPTS】也可在容器启动时指定:-e JAVA_OPTS='-server -Dfile.encoding=UTF-8 -Xms2g -Xmx2g -Xmn512m -Xss512K ..............'

    三、制作镜像

    执行 docker build 制作镜像:

    docker build -t tomcat-8.5.50:v1 .

    说明:

    -t  设置tag名称, 命名规则registry/image:tag(若不添加版本号,默认latest)

    .  表示使用当前目录下的Dockerfile文件(注意语句后面有一个点),如需指定目录,则用 -f

    执行 docker images 查看构建的镜像:

    四、启动tomcat容器

    # 挂载代码
    docker run -d --name mytomcat -v /server/webapps:/usr/local/tomcat/webapps/ -e TZ="Asia/Shanghai" --privileged=true -p 8080:8080 tomcat-8.5.50:v1

    # 挂载日志
    docker run -d -e TZ="Asia/Shanghai" --name masl -p 8081:8080 -v /home/mppay/logs/masl:/home/mppay/logs/masl 10.0.29.104:5000/masl:17

    # 挂载配置文件catalina.sh(调整内存)
    docker run -d --name masl -p 8081:8080 -e TZ="Asia/Shanghai" -v /usr/local/tomcat/bin/catalina.sh:/usr/local/apache-tomcat-8.5.50/bin/catalina.sh 10.0.29.104:5000/masl:sit-17

    # 挂载配置文件server.xml(调整端口和线程数)
    docker run -d --name masl -p 8081:8080 -e TZ="Asia/Shanghai" -v /usr/local/tomcat/conf/server.xml:/usr/local/apache-tomcat-8.5.50/conf/server.xml 10.0.29.104:5000/masl:sit-17

    说明:

    *  -d 后台运行

    *  --name mytomcat 容器名称
    -v /server/webapps:/usr/local/tomcat/webapps/ 挂载当前项目的运行目录到tomcat下的webapps
    -e TZ="Asia/Shanghai" 设置时区
    --privileged=true 设置拥有容器中的真正的root权限
    -p 8080:8080 映射端口(宿主机port : 容器port)
    *  tomcat-8.5.50:v1 镜像的名称

    执行 docker ps 查看进程:

    五、访问验证

    输入地址:http://ip:8080

  • 相关阅读:
    SpringBoot集成MyBatisPlus
    Android 图片混排富文本编辑器控件
    Android 图片压缩器
    python中yield用法
    ubuntu下tesseract 4.0安装及参数使用
    Linux 命令行命令及参数辨异
    一题多解 —— linux 日志文件(log)reload 重新载入
    python中list用法及遍历删除元素
    计算机科学 —— 时间戳(timestamp)
    ubuntu中使用apt-get安装zbar
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/12230725.html
Copyright © 2011-2022 走看看