Dockerfile 简单使用制作tomcat war 镜像包

一、初步了解DockerFile

DockerFile的作用就是将你需要的所有的镜像打包成一个DockerFile制作成一个全新的镜像(自定义镜像),这个镜像里有可能有配置好的redis和mysql的集群,nginx和tomcat等等。多机房部署只需要运行这个镜像就好了。

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建

二、实践操作

1.首先我们先创建一个DockerFile

vim Dockerfile 

FROM tomcat:latest
COPY ./yxaj.war /usr/local/tomcat/webapps

Dockerfile 简单使用制作tomcat  war 镜像包

 嗯。。就这两行。因为我们下载好的tomcat里已经有jdk环境变量了,所以不用配置。我们要做的就是把tomcat镜像拉下来,然后复制我们的war包到镜像里的目录中。

2.接下来我们构建一下。

[ ~]#docker build -t tomcat:latest . 

Dockerfile 简单使用制作tomcat  war 镜像包

 Dockerfile 简单使用制作tomcat  war 镜像包

 docker images 我们的镜像已经在仓库中了。

3.启动镜像

[ ~]# docker run -itd --name web -p 8090:8080 tomcat:latest

 注意:我这里遇到了一个坑:报错如下

Dockerfile 简单使用制作tomcat  war 镜像包

 解决办法:

[ ~]# vim /usr/lib/sysctl.d/00-system.conf

 添加如下代码:

net.ipv4.ip_forward=1

 重启network服务

[ ~]# systemctl restart network

进入容器:

docker exec -it dcc /bin/bash

看到war包确实存在。

Dockerfile 简单使用制作tomcat  war 镜像包

 那我们来进行访问测试:

Dockerfile 简单使用制作tomcat  war 镜像包

 看到上面界面说明成功了。