使用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

原文地址:https://www.cnblogs.com/tyhj-zxp/p/9573511.html