一、初步了解DockerFile
DockerFile的作用就是将你需要的所有的镜像打包成一个DockerFile制作成一个全新的镜像(自定义镜像),这个镜像里有可能有配置好的redis和mysql的集群,nginx和tomcat等等。多机房部署只需要运行这个镜像就好了。
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建
二、实践操作
1.首先我们先创建一个DockerFile
vim Dockerfile
FROM tomcat:latest
COPY ./yxaj.war /usr/local/tomcat/webapps
嗯。。就这两行。因为我们下载好的tomcat里已经有jdk环境变量了,所以不用配置。我们要做的就是把tomcat镜像拉下来,然后复制我们的war包到镜像里的目录中。
2.接下来我们构建一下。
[root@yxaj ~]#docker build -t tomcat:latest .
docker images 我们的镜像已经在仓库中了。
3.启动镜像
[root@yxaj ~]# docker run -itd --name web -p 8090:8080 tomcat:latest
注意:我这里遇到了一个坑:报错如下
解决办法:
[root@yxaj ~]# vim /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
[root@yxaj ~]# systemctl restart network
进入容器:
docker exec -it dcc /bin/bash
看到war包确实存在。
那我们来进行访问测试:
看到上面界面说明成功了。