dockerfile如何自己建一个tomcat(自己制作一个tomcat,访问8080的时候是显示我们的页面而不是它的那个猫)

dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本

家想想,Nginx,tomcat,mysql 这些镜像都是哪里来的?官方能写,我们不能写吗?

我们要研究自己如何做一个镜像,而且我们写的微服务项目以及 springboot 打包上云部署,Docker就是最方便的。

微服务打包成镜像,任何装了Docker的地方,都可以下载使用,极其的方便。

流程:开发应用=>DockerFile=>打包为镜像=>上传到仓库(私有仓库,公有仓库)=> 下载镜像 => 启动 运行。

还可以方便移植!

构建步骤:

1、编写DockerFile文件

2、docker build 构建镜像

3、docker run

实战测试

CentOS

官方默认的 CentOS 的情况不支持 vim 和 ifconfig 指令

我们自己构建一个支持这些指令的镜像

步骤:

  • 将 JDK 和 tomcat 安装的压缩包拷贝到自己放的地方(我个人放的位置不当就放在了src里面)
  • 用的是(jkd1.8与tomcat7.047)

2.新建一个 Dockerfile 文件

FROM centos

MAINTAINER xiaomi<test@qq.com>
#把宿主机当前上下文的read.txt拷贝到容器/usr/local/路径下
COPY read.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u11-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-7.0.47.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#变量
ENV MYPATH /usr/local
#设置工作访问时候的WORKDIR路径,登录落脚点
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.47
ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.47
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-7.0.47/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-7.0.47/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-7.0.47/bin/startup.sh && tail -F /usr/local/apache-tomcat-7.0.47/bin/logs/catalina.out

构建镜像:

docker build -t diytomcat .

在此目录下默认构建 Dockerfile 文件,所以不需要带上文件名

启动:

docker run -d  -p 9090:8080 --name diytomcat -v /home/build/tomcat/test:/usr/local/apache-tomcat-7.0.47/webapps/test -v /home/build/tomcat/logs/:/usr/local/apache-tomcat-7.0.47/logs --privileged=true diytomcat

备注:Docker挂载主机目录Docker访问出现cannot open directory Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

 看到这句就已经在里面运行了

访问localhost:9090就可以看到tomcat的原界面

那怎么样可以创建自己属于的tomcat呢?

1.docker exec -it  CONTAINER ID /bin/bash

2.ls 找到 apache-tomcat-7.0.47

cd apache-tomcat-7.0.47/

3.再次寻找conf  cd到 conf/

4.vi web.xml 就会看到原界面的源码

翻到最下面

 5.然后再次回到cd apache-tomcat-7.0.47/

6.ls 寻找到webapps

7.找到ROOT 进入

8.创建一个a.jsp

9.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
</head>
<body>
Hello World!<br/>
<% System.out.println("-------my docker tomcat-------");%>
</body>
</html>

10.exit; 退出

11.重新运行