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. Xshell5 提示要继续使用此程序,您必须应用最新的更新或使用新版本

    Xshell5 提示要继续使用此程序,您必须应用最新的更新或使用新版本   目录 问题描述 修改系统时间 安装新版本 下载 安装 回到顶部 问题描述 今天上线一个服务,上完准备看下OPS的发布结果,就 ...

  2. FIRMWARE BUG – THE BIOS HAS CORRUPTED HW-PMU RESOURCES

    If you’re trying to install CentOS 7 on HP server and you receive the error from the caption, don’t ...

  3. 关于springboot2.x 的 RedisCacheManager变化

    springboot配置缓存过期时间,大部分是使用ReidsCacheManager来进行自定义的配置 以下是大部分网上的代码(这也是基于springboot1.x的版本可以使用的) @Beanpub ...

  4. 知识点总结——STL相关(持续补充)

    ---恢复内容开始--- C++ STL 与ACM竞赛相关的应用 1.vector vector是动态数组,可以理解为是能够根据需要随时申请内存的动态数组. 常用操作如下: 容量 vec.size() ...

  5. Ubuntu16.04 apt源更新

    更新源 安装好系统后,先更新源,方便后面能比较快地下载各种软件包. 备份/etc/apt/sources.list,然后将内容全部替代为: # deb cdrom:[Ubuntu 16.04 LTS ...

  6. vs2017使用问题

    最近安装了新版本的Visual studio  2017,但是在使用的过程中遇到了这样一个问题.刚启动电脑后,打开vs2017是可以打开的,但是当关掉之后再打开就打不开了,但是任务管理器看可以看到有一 ...

  7. 初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性

    ChromeDriver可以理解为Chrome驱动,它是架在BAT程序和Chrome之间的桥梁.但是ChromeDriver的问题是,每个版本的兼容范围很窄,通常只能兼容3个Chrome版本. 因此, ...

  8. centos上 小程序部署 nginx+https+ssL 提示错误:对应的服务器 TLS 为 TLS 1.0 ,小程序要求的 TLS 版本必须大于等于 1.2

    解决办法: 1.nginx版本必须是1.0.6以上 2.修改配置文件,修改server内的ssl_protocols内容,增加TLSv1.2 3.重启nginx. ./nginx -s reload ...

  9. Android学习笔记二之初始Activity

    初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...

  10. FastSocket客户端/服务端通讯示例 客户端被动接收

    示例代码参见  http://www.cnblogs.com/T-MAC/p/fastsocket-asyncbinary-usage.html 我这里只写一份客户端如何被动接收的代码.   先从As ...