zoukankan      html  css  js  c++  java
  • 使用Dockerfile自定义一个包含centos,tomcat的镜像

    1.首先建立一个专用的dockerfile目录,方便统一存放将要创建的Dockerfile文件及相关资源,

       例如:mkdir mydockerself

    2.定位到mydockerself路径下,下载linux版本的tomcat和jdk,以备使用

     

    3.新建Dockerfile文件

    touch Dockerfile

    4.编辑文件内容如下:

    FROM centos
    #作者 MAINTAINER zxp
    #安装vim编辑器 RUN yum -y install vim #设置访问时默认进入的目录,进入/usr/local目录 ENV MYPATH /usr/local WORKDIR $MYPATH #在/usr/local下创建jdk目录,用来存放jdk文件 #RUN mkdir jdk #在/usr/local下创建tomcat目录,用来存放tomcat #RUN mkdir tomcat #将宿主机的jdk目录下jdk文件拷至镜像的/usr/local目录下,并自动解压。ADD与COPY命令区别 ADD jdk-8u181-linux-x64.tar.gz /usr/local/ #将宿主机的tomcat目录下的文件拷至镜像的/usr/local目录下,并自动解压 ADD tomcat8.tar.gz /usr/local/ #设置环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_181 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATLINA_HOME /usr/local/apache-tomcat-8.0.53 ENV CATLINA_BASE /usr/local/apache-tomcat-8.0.53 ENV PATH $PATH:$JAVA_HOME/bin:$CATLINA_HOME/lib:$CATLINA_HOME/bin #公开端口 EXPOSE 8080 #设置启动命令,启动Tomcat #CMD /usr/local/apache-tomcat-8.0.53/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.0.53/bin/logs/catalina.out ENTRYPOINT ["/usr/local/apache-tomcat-8.0.53/bin/catalina.sh","run"]

    5.构建镜像

    #使用当前路径下的Dockerfile文件构建镜像,如果我们定义的Dockefile文件名字不是默认的“Dockefile”,则需要-f 指定文件路径和名字
    docker build -t zxp/tomcat_by_z .

    ...

    上图显示了构建的各个步骤,最后显示成功

    6.使用docker images查看创建好的镜像,zxp/tomcat_by_z即为我们自己构建的镜像

    7.通过构建的zxp/tomcat_by_z镜像,启动一个容器,并挂载test数据目录和logs日志目录

    docker run -d -p 8080:8080 --name mytomcat001 -v /usr/local/mydockerself/tomcat8/test:/usr/local/apache-tomcat-8.0.53/webapps/test -v /usr/local/mydockerself/tomcat8/logs:/usr/local/apache-tomcat-8.0.53/logs --privileged=true zxp/tomcat_by_z

    8. 查看启动的容器

    9.通过网址访问启动的tomcat容器

    可以正常访问,说明一切ok。如果以后想部署网址,可以通过宿主机挂载的test数据目录进行部署。

     10.如果我们想进入容器内,可以通过以下命令进入。

    #e3d0f30a3ecd为要进入的容器id
    docker exec -it e3d0f30a3ecd /bin/bash

    可以看到,默认进入的目录,就是我们设置的默认工作目录/usr/local

  • 相关阅读:
    C#总结(四)调用C++动态库
    Golang 入门系列(十二)ORM框架gorm
    《关键对话》如何高效沟通,营造无往不利的事业和人生?
    Golang 入门系列(十一)Go语言实现webapi
    Golang 入门系列(十) mysql数据库的使用
    Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件
    Golang 入门系列(八) cron定时任务
    Golang 入门系列(七) Redis的使用
    福利 | 互联网产品经理学习资料免费下载(可下载)
    福利 | 2018各大技术大会资料汇总(可下载)
  • 原文地址:https://www.cnblogs.com/tyhj-zxp/p/9573511.html
Copyright © 2011-2022 走看看