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

#把宿主机当前上下文的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"%>

测试

Hello World!

<% System.out.println("-------my docker tomcat-------");%>

10.exit; 退出

11.重新运行

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: