zoukankan      html  css  js  c++  java
  • dockerfile构建Tomcat镜像

    dockerfile构建Tomcat镜像

    一、镜像分层概念

    二、制作tomcat镜像

    2.1、创建分层目录
    [root@node2 ~]# mkdir /app/{web/{nginx,tomcat,jdk},system/{centos,alpine,ubantu}} -pv
    
    2.2、制作基础centos镜像
    [root@node2 ~]# cd /app/system/centos/
    [root@node2 centos]# vim Dockerfile
    #Centos 7.6 base images
    
    FROM centos:7.6.1810
    
    LABEL tzh 123456@qq.com
    
    RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel vim
    
    #创建tzh组、tzh用户,然后把用户tzh添加到tzh组中
    RUN groupadd tzh -g 2020 && useradd tzh -u 666 -g tzh
    
    #构建,实际上生产这样构建不合适。应该搞个脚本构建,要不然容易忘记镜像是干嘛的!!
    [root@node2 centos]# docker build -t centos-base:7.6 .
    
    2.2.1、编写脚本,方便日后构建镜像,方便记录镜像名称
    #同级目录下
    [root@node2 centos]# pwd
    /app/system/centos
    
    #编写脚本,先写固定了,后期可以把centos-base和7.6做手动传入的参数
    [root@node2 centos]# vim build-command.sh
    #!/bin/bash
    docker build -t centos-base:7.6 .
    
    #调用,加权限 ./build-command.sh也行
    [root@node2 centos]# bash  build-command.sh
    
    2.3、构建jdk镜像
    [root@node2 ~]# cd /app/web/jdk
    [root@node2 jdk]# mkdir jdk-8u221
    [root@node2 jdk]# cd jdk-8u221/
    #找到要上传的jdk版本,上传到服务器当前目录下
    [root@node2 jdk-8u221]# rz
    
    #准备好以下文件
    [root@node2 jdk-8u221]# ll
    total 190532
    -rw-r--r-- 1 root root       624 Sep 10 09:14 Dockerfile
    -rw-r--r-- 1 root root 195094741 Dec 24  2019 jdk-8u221-linux-x64.tar.gz
    -rw-r--r-- 1 root root      2150 Sep 10 09:18 profile
    
    #编写Dockerfile
    [root@node2 jdk-8u221]# vim Dockerfile
    #FORM 的是刚刚我们做的基础centos镜像
    FROM centos-base:7.6
    
    LABEL tzh 123456@qq.com
    
    #添加到镜像中,ADD会帮我们解压
    ADD jdk-8u221-linux-x64.tar.gz /usr/local/src/
    
    RUN ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/java
    
    #添加配置文件
    ADD profile /etc/profile
    
    #添加java的环境变量(不加这个root登录没有java环境)
    ENV JAVA_HOME /usr/local/java
    ENV JRE_HOME $JAVA_HOME/jre
    ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
    ENV PATH $PATH:$JAVA_HOME/bin
    
    #统一时间,做软链接。ln [参数][源文件或目录][目标文件或目录]
    RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    2.3.1、编写脚本,方便日后构建镜像,方便记录镜像名称
    #同级目录下
    [root@node2 jdk-8u221]# pwd
    /app/web/jdk/jdk-8u221
    
    #编写脚本,以后优化
    [root@node2 centos]# vim build-command.sh
    #!/bin/bash
    docker build -t centos-jdk:jdk-8u221 .
    
    #调用,加权限 ./build-command.sh也行
    [root@node2 centos]# bash  build-command.sh
    Successfully built e5a7d9fba0af
    Successfully tagged centos-jdk:jdk-8u221
    
    #认证是否能用
    [root@node2 jdk-8u221]# docker run --rm -it centos-jdk:jdk-8u221 bash
    [root@400048eeca6b /]# java -version
    

    2.4、构建tomcat镜像

    #进入tomcat目录
    [root@node2 ~]# cd /app/web/tomcat/
    [root@node2 tomcat]# mkdir tomcat9.0
    [root@node2 tomcat]# cd tomcat9.0/
    #上传tomcat安装包上来
    [root@node2 tomcat9.0]# rz
    
    #编写最基本的,如果对tomcat优化过,可以把优化过的包替换
    #构建最基础的tomcat镜像,等有需要部署代码了,再pull这个基础镜像,做不同的配置
    [root@node2 tomcat9.0]# vim Dockerfile              
      
    FROM centos-jdk:jdk-8u221
    
    LABEL maintainer="tzh <362777279@qq.com>"
    
    ADD apache-tomcat-9.0.27.tar.gz /app
    
    RUN ln -sv /app/apache-tomcat-9.0.27 /app/tomcat
    
  • 相关阅读:
    apt-get install jdk
    progit-zh(Git中文文档)
    indexedDB bootstrap angularjs 前端 MVC Demo
    状态模式
    使用TypeConverter类
    wpf 全局异常捕获处理
    WPF 中的形状和基本绘图概述
    WPF设计自定义控件
    WPF快速入门系列(9)——WPF任务管理工具实现
    WPF快速入门系列(8)——MVVM快速入门
  • 原文地址:https://www.cnblogs.com/hsyw/p/13644315.html
Copyright © 2011-2022 走看看