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..0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATLINA_HOME /usr/local/apache-tomcat-8.0.
ENV CATLINA_BASE /usr/local/apache-tomcat-8.0.
ENV PATH $PATH:$JAVA_HOME/bin:$CATLINA_HOME/lib:$CATLINA_HOME/bin #公开端口
EXPOSE
#设置启动命令,启动Tomcat
#CMD /usr/local/apache-tomcat-8.0./bin/startup.sh && tail -f /usr/local/apache-tomcat-8.0./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 : --name mytomcat001 -v /usr/local/mydockerself/tomcat8/test:/usr/local/apache-tomcat-8.0./webapps/test -v /usr/local/mydockerself/tomcat8/logs:/usr/local/apache-tomcat-8.0./logs --privileged=true zxp/tomcat_by_z

8. 查看启动的容器

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

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

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

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

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

使用Dockerfile自定义一个包含centos,tomcat的镜像的更多相关文章

  1. 利用Dockerfile构建一个基于CentOS 7镜像

    利用Dockerfile构建一个基于CentOS 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像. Dockerfile内容如下: FROM centosMAINTA ...

  2. 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像

    Dockerfile内容如下: FROM centos MAINTAINER Victor ivictor@foxmail.com WORKDIR /root RUN rm -f /etc/yum.r ...

  3. Docker使用Dockerfile创建Centos(tomcat+jdk)镜像

    原文链接:https://blog.csdn.net/qq_37936542/article/details/80824389 Docker构建镜像的方法主要有两种:    (1)使用docker c ...

  4. 创建一个包含TC的Alpine镜像

    镜像的创建 更换镜像至ustc(为了测试时的速度) 安装musl-dev make gcc linux-headers bison flex以使TC可以编译 拷贝进TC的源代码 进入源代码文件夹进行编 ...

  5. docker Dockerfile学习---nginx负载均衡tomcat服务

    1.此过程在nginx的基础上,也就是上篇博客写的内容. 2.创建项目目录并上传包,解压 $ mkdir centos_tomcat $ cd centos_tomcat $ tar zxvf jdk ...

  6. 使用Dockerfile文件构建基于centOS系统的tomcat镜像

    以下是Dockerfile的内容: #基础镜像 FROM centos #维护人员信息 MAINTAINER weigs "weigs1231@gmail.com" #设置工作目录 ...

  7. 数据结构和算法之栈和队列三:自定义一个栈包含min函数

    我们都知道一个栈的特点是后进先出,如果我们要实现在O(1)的时间内找到一个栈里面的最小值,我们应该怎么解决?如果我们采用遍历获取的思路那必然所需要的时间是O(N)与我们所需要的要求明显不符合,这时候我 ...

  8. DOCKER 学习笔记2 认识dockerfile自定义镜像

    Dockerfile 概念 Dockerfile 是一个文本文件,但包含所构建容器在运行时候的参数.库.资源配置.可以简单理解为我们现有的镜像,比如Centos/Nginx 但我们需要构建一个容器的时 ...

  9. 对于Servlet、Servlet容器以及一个Servlet容器-Tomcat

    Servlet.Servlet容器等内容讲解 转载自http://blog.csdn.net/iAm333 对于Servlet.Servlet容器以及一个Servlet容器-Tomcat这些概念讲解的 ...

随机推荐

  1. stm32之中断配置

    一.stm32的中断和异常 Cortex拥有强大的异常响应系统,它能够打断当前代码执行流程事件分为异常和中断,它们用一个表管理起来,编号为0~15为内核异常,16以上的为外部中断,这个表就是中断向量表 ...

  2. stm32之CMSIS标准、库目录、GPIO

    一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...

  3. 浏览器端使用javascript调用腾讯翻译api

    最近在学习的小玩意,发现腾讯的文档十分坑爹,里面有很多错误的指示. 不过腾讯的机器翻译还是很牛的,我觉得翻译水准比谷歌好很多. 腾讯的机器翻译貌似在试用阶段,不收费,用QQ或微信登录即可申请使用. 首 ...

  4. 【CentOS】自定义服务添加

    1.创建服务需要执行的脚本 cd /sb/scripts vi td-agent-testlog #!/bin/bash # # /etc/rc.d/init.d/td-agent-DC01 # # ...

  5. JavaScript 高级特性

    1. 原型Prototype 1.1 构造函数 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定 ...

  6. 【剑指Offer】只出现一次的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  7. 【坑】linux目录软连接的相关操作--很容易误操作

    写一下文档,记录自己工作中的重大事故,警醒自己以后别犯错. 1)目录不能进行硬连接,只能进行软连接,也就是 ln命令必须加上 -s 参数,如下: [root@ALIYUN:~]#ln /srv/bak ...

  8. 在linux上构建gitolite

    每台机器生成密钥前要设置邮箱和用户名: git config --global user.name "admin" git config --global user.email & ...

  9. EXT.net 图标靠右排列

    toolbar1.Items.Add(Button_1); toolbar1.Items.Add(Button_2); toolbar1.Items.Add(Button_3); toolbar1.I ...

  10. Vue 编程式导航(通过js跳转页面)以及路由hash模式和history模式

    第一种方法: this.$router.push({path:'shopcontent?aid=3'}   第二种方法   this.$router.push({name:'news'}} 通过在ma ...