Dockerfile build tomcat镜像

在用docker的初期,我们都是下载官方已有的镜像,搭建我们的开发或测试环境,比如redis,mysql的镜像,那为什么不去搭建一个更适合我们自己的环境呢,Dockerfile的出现就是让我们自己构建镜像成为了可能。

dockerfile是自定义镜像的一套规则

dockerfie由多条指令构成,Dockerfile中的每一条指令都会对应于Docker镜像中的每一层

下面我们一步一步完成一个自定义的docker镜像

1、下载所需的tomcat 和jdk文件,我这里下载的是如下版本:
apache-tomcat-9.0.71.tar.gz
jdk-8u251-linux-x64.tar.gz

2、创建一个操作目录,方便操作
mkdir -p /yyz/mytomcat

进入到此目录中:
cd /yyz/mytomcat  

3、将上面两个文件jdk,tomcat文件一并放到/yyz/mytomcat

cp /yyz/apache-tomcat-9.0.71.tar.gz .   (这里有个小点,表示当前目录)

cp /yyz/jdk-8u251-linux-x64.tar.gz .   (这里有个小点,表示当前目录)

4、创建一个Dockerfile文件,并编写内容

touch ./diyTomcatDockerFile

vim ./diyTomcatDockerFile

#基于哪个镜像
FROM centos
#作者信息
MAINTAINER diytomcat:1.0<2322292960@qq.com>

#定义镜像中的一个环境变量,作为以后默认登录的路径
ENV MYPATH /usr/local
#切换到该目录下
WORKDIR $MYPATH

#ADD目录,拷贝并解压到 当前目录下,即/usr/local目录。
ADD ./jdk-8u251-linux-x64.tar.gz ./
#注意和COPY命令区分开,COPY是单纯拷贝,而ADD是拷贝并解压
ADD ./apache-tomcat-9.0.71.tar.gz  ./

#设置jdk所需的变量
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV CLASSPATH .:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

#设置tomcat所需的变量(方便直接使用tomcat的bin目录下的命令)
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.71
#将jdk和tomcat的变量追加到环境变量中
ENV PATH $PATH:${JAVA_HOME}/bin:${CATALINA_HOME}/bin

EXPOSE 8080


#CMD 在【docker run 镜像】 的时候,会执行CMD中的命令。这里的startup.sh是解压后tomcat的bin目录下的启动文件。也就是下面目录的作用是 在启动容器的时候,同时启动tomcat>,而且通过tail -f让centos阻塞住,不会因没有任务所需执行而导致centos刚启动后就停止了。
CMD startup.sh && tail -f /usr/local/apache-tomcat-9.0.71/logs/catalina.out

5、构建镜像

docker build -f ./diyTomcatDockerFile -t diytomcat/tomcat:v1.1 .(这里有一个小点)

 按照diyTomcatDockerFile文件,一步一步构建的过程

 6、过程中没有报错,说明构建成功。我们看一下镜像

 docker image  这里v1.1就是我们刚才构建的镜像

 7、发现的问题:

7.1、在命令行后少了" .",否则报下面的错误

7.2、在diyTomcatDockerFile文件中,注释和docker命令不能放在同一行,否则报下面的错误

docker build -f ./diyTomcatDockerFile -t diytomcat/tomcat:v1.1
"docker build" requires exactly 1 argument.
See 'docker build --help'.

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值