目录
一、Dockerfile介绍
1、centos镜像来理解Dockerfile
2、docker的创建流程
二、Dockerfile的保留字指令
1、自定义centos镜像(run保留字)
history指令
2、自定义centos镜像(entrypoint)
CMD关键字的注意事项
curl指令
3、onbuild关键字
4、add和copy关键字的使用
在tomcat上部署web项目
一、Dockerfile介绍
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令邻和参数构成的脚本。
![](https://img-blog.csdnimg.cn/20190808073325405.png)
1、centos镜像来理解Dockerfile
![](https://img-blog.csdnimg.cn/2019080807352053.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/2019080807410526.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190808074237417.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
2、docker的创建流程
从应用软件的角度来看,Dockerfile、 Docker镜 像与Docker容器分别代表软件的三个不同阶段,* Dockerfile 是软件的原材料* Docker镜 像是软件的交付品
Docker容器则可以认为是软件的运行态。
Dockerfile面向开发,Docker镜 像成为交付标准,Docker容 器则涉及部署与运维,三者缺- -不可,合力充当Docker体系的基石。
![](https://img-blog.csdnimg.cn/20190808074511427.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
二、Dockerfile的保留字指令
![](https://img-blog.csdnimg.cn/20190808075832660.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
1、自定义centos镜像(run保留字)
关闭正在运行的容器
![](https://img-blog.csdnimg.cn/20190808080221420.png)
启动一个centos容器
![](https://img-blog.csdnimg.cn/20190808080354366.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
创建dockerfile文件
![](https://img-blog.csdnimg.cn/20190808080820363.png)
![](https://img-blog.csdnimg.cn/20190808080751471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
构建镜像
![](https://img-blog.csdnimg.cn/20190808081131616.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190808081219334.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
运行镜像
![](https://img-blog.csdnimg.cn/20190808081315564.png)
history指令
查看镜像创建历史
![](https://img-blog.csdnimg.cn/20190808081456578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
2、自定义centos镜像(entrypoint)
CMD关键字的注意事项
![](https://img-blog.csdnimg.cn/20190808085058692.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
curl指令
![](https://img-blog.csdnimg.cn/20190808085710221.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
创建dockerfile文件
![](https://img-blog.csdnimg.cn/20190808090401263.png)
创建自定义镜像
![](https://img-blog.csdnimg.cn/20190808090500691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
可以查看添加指令,不会出现覆盖
![](https://img-blog.csdnimg.cn/2019080809065767.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
3、onbuild关键字
创建dockerfile4文件
![](https://img-blog.csdnimg.cn/20190808091014341.png)
![](https://img-blog.csdnimg.cn/20190808090950610.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
创建镜像
![](https://img-blog.csdnimg.cn/20190808091047809.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
复制dockerfile3为dockerfile5
![](https://img-blog.csdnimg.cn/20190808091201999.png)
修改dockerfie5,集成与myip_father这个镜像
创建镜像
![](https://img-blog.csdnimg.cn/20190808091356199.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
4、add和copy关键字的使用
c.txt是copy关键字将文件放入到镜像指定目录
jdk和tomcat压缩包是add关键字将文件放入到镜像指定目录并且解压
![](https://img-blog.csdnimg.cn/20190808093047610.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
编辑dockerfile文档
![](https://img-blog.csdnimg.cn/20190808093839760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190808094617940.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
启动tomcat容器
![](https://img-blog.csdnimg.cn/20190808095055253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190808095425452.png)
在tomcat上部署web项目
创建web.xml
![](https://img-blog.csdnimg.cn/20190808095840213.png)
![](https://img-blog.csdnimg.cn/20190808100328440.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
创建jsp文件
![](https://img-blog.csdnimg.cn/20190808095721383.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190808095649628.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3OTA5NTA4,size_16,color_FFFFFF,t_70)
现在我们可以看到前面这些都是我们在主机上进行操作,由于是共享数据卷,所以直接在tomcat容器中也一样修改了
![](https://img-blog.csdnimg.cn/20190808100050649.png)
重启
![](https://img-blog.csdnimg.cn/20190808100118134.png)
访问web项目
![](https://img-blog.csdnimg.cn/20190808100152789.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)