美文网首页
制作【CentOs+tomcat7+jdk8】镜像

制作【CentOs+tomcat7+jdk8】镜像

作者: Impassable_time | 来源:发表于2018-07-25 11:08 被阅读0次

    制作 CentOs+tomcat7+jdk8 镜像

    前提说明:

    一般公司使用的镜像:
    1、需要长期使用的,所以Dockerfile文件,要写清楚版本号,不能下载 <font color=#0000FF size=4>latest</font> 版本,不然长时间使用,可能会因为长期使用,导致版本更新了出现一些不必要的问题。
    2、看具体生产情况,我们目前是在银行做项目,肯定是没有外网的,所以tomcat、jdk的安装文件,也是提前下载好的。(也可以联网制作镜像,然后把镜像考到行里,为了避免出现一些链接不到的情况,所以我都提前下载好了)
    3、制作中镜像,一般的想法是尽量做的小,本文介绍的制作方式,镜像还是比较大的,大约700M,基本插件都是在的,比如vi这些常用的,避免出现特殊情况,还需要重新制作,不能立刻修改处理。
    -- <font color=#F00000 size=3>注:本文使用到的文件,在说明中,也会提供下载地址。</font>

    简要说明

    三步制作镜像
        - 1)准备安装所需要的安装包
        - 2)编写Dockerfile文件
        - 3)执行脚本
    
    第一步、完成第一个镜像 its-image-base:1.0
    将jdk、tomcat都打进去,便于后续搭建服务使用。
    

    文件目录说明:

    - Dockerfile                    //docker build 需要的文件
    - apache-tomcat-7.0.34.tar.gz   //tomcat安装包
    - jdk-8u60-linux-x64.tar.gz     //jdk安装包
    

    注:三个文件是在一个目录下的[详细介绍会写下载地址]

    第二步、编写Dockerfile文件

    ##下载centos7镜像
    FROM centos:7.4.1708
    
    ##作者
    MAINTAINER Will wangzhenwei@erayt.com
    
    #安装 en_US.UTF-8 并配置环境
    RUN locale-gen en_US.UTF-8
    ENV LANG en_US.UTF-8
    ENV LANGUAGE en_US:en
    ENV LC_ALL en_US.UTF-8
    
    ##安装jdk
    RUN mkdir /usr/soft
    RUN mkdir /usr/local/jdk
    COPY jdk-8u60-linux-x64.tar.gz /usr/soft/jdk-8u60-linux-x64.tar.gz
    RUN tar xvf /usr/soft/jdk-8u60-linux-x64.tar.gz -C /usr/local/jdk
    RUN rm -rf /usr/soft/jdk-8u60-linux-x64.tar.gz
    
    ##安装tomcat
    RUN mkdir -p /usr/local/work/tomcat
    COPY apache-tomcat-7.0.34.tar.gz  /usr/soft/apache-tomcat-7.0.34.tar.gz 
    RUN tar xvf /usr/soft/apache-tomcat-7.0.34.tar.gz  -C /usr/local/work/tomcat
    RUN rm -rf /usr/soft/apache-tomcat-7.0.34.tar.gz
    
    ##设置环境变量
    ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_60
    ENV CATALINA_HOME /usr/local/work/tomcat/apache-tomcat-7.0.34
    ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
    
    ##打包项目拷贝到tomcat webapps目录中
    ##COPY xxx /usr/local/work/tomcat/apache-tomcat-7.0.34/webapps
    
    
    ##内部开启服务端口
    EXPOSE 8080
    
    ##最后启动sshd进程,防止容器启动后就不见了
    ##CMD /usr/sbin/sshd -D
    CMD ["./usr/local/work/tomcat/apache-tomcat-7.0.34/bin/catalina.sh", "run"]
    

    第三步、执行build命令:

    docker build --rm=true --no-cache=false -t its-image-base:1.0 .
    
    返回结果:
    [root@izuf6efkun6biw8x0tdeydz CentOS7.4]# docker build --rm=true --no-cache=false -t its_image_base:171115 .
    Sending build context to Docker daemon    189MB
    Step 1/16 : FROM centos:7.4.1708
     ---> 3afd47092a0e
    Step 2/16 : MAINTAINER Will wangzhenwei@erayt.com
     ---> Using cache
     ---> bcde7f2a7f89
    Step 3/16 : RUN mkdir /usr/soft
     ---> Running in b3760402c706
     ---> e78be80366c4
    Removing intermediate container b3760402c706
    Step 4/16 : RUN mkdir /usr/local/jdk
     ---> Running in e904a339f965
     ---> c85a25c43ca6
    Removing intermediate container e904a339f965
    Step 5/16 : COPY jdk-8u60-linux-x64.tar.gz /usr/soft/jdk-8u60-linux-x64.tar.gz
     ---> 00e05bd13316
    Step 6/16 : RUN tar xvf /usr/soft/jdk-8u60-linux-x64.tar.gz -C /usr/local/jdk
     ---> Running in 8b95161b11e5
    jdk1.8.0_60/
    jdk1.8.0_60/README.html
    jdk1.8.0_60/LICENSE
    .................................... 中间省略
    jdk1.8.0_60/bin/jcontrol
    jdk1.8.0_60/release
     ---> 5302ec82de5d
    Removing intermediate container 8b95161b11e5
    Step 7/16 : RUN rm -rf /usr/soft/jdk-8u60-linux-x64.tar.gz
     ---> Running in 5c147c99ba07
     ---> ca5c3664f5d3
    Removing intermediate container 5c147c99ba07
    Step 8/16 : RUN mkdir -p /usr/local/work/tomcat
     ---> Running in 095f3c015534
     ---> f665a406b46f
    Removing intermediate container 095f3c015534
    Step 9/16 : COPY apache-tomcat-7.0.34.tar.gz /usr/soft/apache-tomcat-7.0.34.tar.gz
     ---> 94c2caaf0fd1
    Step 10/16 : RUN tar xvf /usr/soft/apache-tomcat-7.0.34.tar.gz  -C /usr/local/work/tomcat
     ---> Running in 743b8f89a87f
    apache-tomcat-7.0.34/bin/catalina.sh
    .................................... 中间省略
    apache-tomcat-7.0.34/webapps/manager/images/tomcat.gif
    apache-tomcat-7.0.34/webapps/manager/images/update.gif
    apache-tomcat-7.0.34/webapps/manager/images/void.gif
    apache-tomcat-7.0.34/webapps/manager/index.jsp
    apache-tomcat-7.0.34/webapps/manager/status.xsd
    apache-tomcat-7.0.34/webapps/manager/xform.xsl
     ---> 508590dc6ce6
    Removing intermediate container aee8a6eb745f
    Step 11/16 : RUN rm -rf /usr/soft/apache-tomcat-7.0.34.tar.gz
     ---> Running in 56b281cc8c73
     ---> 9f7a8d02d11a
    Removing intermediate container 56b281cc8c73
    Step 12/16 : ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_60
     ---> Running in af6836a76936
     ---> 3e64a4ecf3ea
    Removing intermediate container af6836a76936
    Step 13/16 : ENV CATALINA_HOME /usr/local/work/tomcat/apache-tomcat-7.0.34
     ---> Running in dccc74c761a4
     ---> 21999848f7e1
    Removing intermediate container dccc74c761a4
    Step 14/16 : ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
     ---> Running in 5b10add2a0a0
     ---> 84f885a6449c
    Removing intermediate container 5b10add2a0a0
    Step 15/16 : EXPOSE 8080
     ---> Running in 950e90710fcd
     ---> 95a33c3ab873
    Removing intermediate container 950e90710fcd
    Step 16/16 : CMD ./usr/local/work/tomcat/apache-tomcat-7.0.34/bin/catalina.sh run
     ---> Running in c8cd844cbfe9
     ---> a4c75a448942
    Removing intermediate container c8cd844cbfe9
    Successfully built a4c75a448942
    Successfully tagged its-image-base:1.0
    [root@izuf6efkun6biw8x0tdeydz CentOS7.4]#
    

    第四步、查看镜像:

    docker images
    

    结果:

    REPOSITORY           TAG           IMAGE ID           CREATED             SIZE
    its-image-base      1.0           a4c75a448942      13 seconds ago        762MB
    

    <font color=#FF6F5A size=4>镜像制作完成</font>


    接下来对于上面的内容,做详细说明。

    详细说明:

    1)、下载centos7镜像
    FROM centos:7.4.1708
    

    下载一个指定版本的centos,这里选型为centos7.4.1709
    镜像来源:https://hub.docker.com/_/centos/

    2)、作者
    MAINTAINER Will wangzhenwei@erayt.com
    

    编辑作者

    3)、安装jdk
    1 RUN mkdir /usr/soft
    2 RUN mkdir /usr/local/jdk
    3 COPY jdk-8u60-linux-x64.tar.gz /usr/soft/jdk-8u60-linux-x64.tar.gz
    4 RUN tar xvf /usr/soft/jdk-8u60-linux-x64.tar.gz -C /usr/local/jdk
    5 RUN rm -rf /usr/soft/jdk-8u60-linux-x64.tar.gz
    

    1、创建一个文件夹/usr/soft,专门存放安装包。
    2、创建一个文件夹/usr/local/jdk ,存放jdk
    3、拷贝本地的jdk[注意路径是相对路径,我的jdk-8u60-linux-x64.tar.gz 和 Dockerfile文件时放在同级的],拷贝到制定的位置
    4、运行解压缩命令,到jdk安装的路径下。
    5、将安装删除。
    jdk8下载地址:http://tomcat-55416.oss-cn-hangzhou.aliyuncs.com/jdk-8u60-linux-x64.tar.gz

    4)、安装tomcat
    1 RUN mkdir -p /usr/local/work/tomcat
    2 COPY apache-tomcat-7.0.34.tar.gz  /usr/soft/apache-tomcat-7.0.34.tar.gz 
    3 RUN tar xvf /usr/soft/apache-tomcat-7.0.34.tar.gz  -C /usr/local/work/tomcat
    4 RUN rm -rf /usr/soft/apache-tomcat-7.0.34.tar.gz
    

    1、创建存放tomcat的工作目录 , -p的意思是创建多集目录。
    2、将本地的tomcat压缩包,拷贝到指定的位置上。
    3、运行解压缩命令,解压到创建的tomcat工作目录上
    4、删除安装包
    tomcat7下载地址:http://tomcat-55416.oss-cn-hangzhou.aliyuncs.com/apache-tomcat-7.0.34.tar.gz

    5)设置环境变量
    ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_60
    ENV CATALINA_HOME /usr/local/work/tomcat/apache-tomcat-7.0.34
    ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
    

    配置环境变量,JAVA_HOME\CATALINA_HOME\PATH

    6)、打包项目拷贝到tomcat webapps目录中
    ##COPY xxx /usr/local/work/tomcat/apache-tomcat-7.0.34/webapps
    

    如果需要把war包一同打进去,可以使用COPY命令,直接完成。

    • 这里我没有这么做,因为我这个是基础镜像,提供给很多应用使用,避免每次搭建centos+tomcat+jdk环境,所以先创建这个基础镜像。
    • 如果直接把war包放进去,有会一个问题,每次启动,他都会重新读取war,如果中途修改了某些文件,会导致不能保存,建议也和安装JDK、tomcat的方式一样,先到临时目录下,然后解压到webapps工作目录下。
    7)、内部开启服务端口
    EXPOSE 8080
    

    内部开启服务端口。关于docker网络,是一片很长的文章,这里不展开说。详情请看我的关于docker网络的文章

    8)、最后启动sshd进程,防止容器启动后就不见了,或者启动tomcat
    ##CMD /usr/sbin/sshd -D
    CMD ["./usr/local/work/tomcat/apache-tomcat-7.0.34/bin/catalina.sh", "run"]
    

    Dockerfile CMD 指令,启动tomcat服务

    9)、build命令解释:
    docker build --rm=true --no-cache=false -t its-image-base:1.0 .
    

    docker build 编译
    --rm=true : 表示构建成功后,移除所有中间容器
    --no-cache=false : 表示在构建过程中不使用缓存,如果创建多个镜像,上一个镜像的缓存会影响到。
    -t its-image-base:1.0 : 创建镜像名称
    . 表示当前目录

    相关文章

      网友评论

          本文标题:制作【CentOs+tomcat7+jdk8】镜像

          本文链接:https://www.haomeiwen.com/subject/ahcpmftx.html