📢📢📢📣📣📣
哈喽!大家好,我是【Bug 终结者】 ,阿里云受邀专家博主🏆,51CTO人气博主🏆 .
一位上进心十足,拥有极强学习力的【Java领域博主】😜😜😜
🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用!
🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞
❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️
文章目录
- 一、什么是 Docker 镜像?
- 二、自定义镜像的好处?
- 三、构建自己的Centos
- 四、RUN、CMD和ENTRYPOINT的区别
- 五、【实战】Dockerfile制作tomcat镜像
- ⛵小结
一、什么是 Docker 镜像?
Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。
二、自定义镜像的好处?
从软件版本管理角度讲,Dockerfile本身是脚本文件,是可以版本化的。理论上使用Dockerfile,在任何时候任何机器上都可以重演镜像制作过程制作出一模一样的镜像,这是非常有利于工程化的。
Dockerfile 可以快速帮助我们构建自己的定制镜像!
三、构建自己的Centos
通过编写 Dockerfile 文件来制作Centos 镜像,并在官方提供的基础上添加 vim、net-tools文件
新建 /home/dockerfile
进入新建的dockerfile文件夹,并新建 mydockerfile-centos
查看编写好的文件
编译刚刚写好的centos7
等待编译完成即可
完成后运行镜像
vim 文件
查看ifconfig
查看镜像历史操作
四、RUN、CMD和ENTRYPOINT的区别
RUN命令与CMD命令的区别在哪里?
简单说,RUN命令在Image 文件的构建阶段执行,执行结果会打包进入image文件,CMD命令则是在容器启动后执行。另外,一个Dockerfile可以包含多个RUN命令,但只能由一个CMD命令
注意,指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令。
CMD和ENTRYPOINT命令的区别
- CMD:指定容器启动的时候要运行的命令,只有最后一个会生效
- ENRTYPOINT:指定容器启动的时候要运行的命令,命令可以追加
CMD命令
编译并执行文件
追加命令查看全部文件目录
可以看到,cmd命令把上一个命令给替换了,由于 -l 不是命令,所以报错了,证明cmd命令会覆盖前面的cmd命令,只执行最后一个cmd命令
再次执行查看全部文件目录命令
可以看到,上一个 ls-a命令已被替换为ls -al
命令!
ENTRYPOINT命令
回到 /home/dockerfile 目录,新建文件测试ENTRYPOINT并写入内容
编译文件并执行容器
在启动时追加命令
可以看到直接追加了命令
五、【实战】Dockerfile制作tomcat镜像
下载JDK、Tomcat文件
链接:https://pan.baidu.com/s/1OT3QZlMVhU_9qLvEwbmk6A
提取码:6666
使用Filezilla将文件上传至 /home/xiaowang
目录下
上传成功后查看文件
编写文件
编写dockerfile文件,文件名使用官方命名:Dockerfile,build的时候会默认寻找当前目录下的文件,不需要 -f 参数指定
构建镜像
编译镜像文件
启动镜像
编译完成后启动镜像
测试访问
访问外网ip地址+3355端口出现tomcat界面
在tomcat目录下新建html文件
由于内部容器和外部进行了挂载,所以修改外部内容,内部容器也会更新
我们进入目录,新建html文件对外访问时展示此页面
写入以下内容
浏览器后缀+test路径访问
ok,至此tomcat镜像制作完毕
⛵小结
以上就是【Bug 终结者】对 【云原生】Docker 进阶 – 构建自定义镜像实战 自定义我们的Docker镜像可利于我们的快速开发,提高开发的效率,可谓是开发利器!
如果这篇【文章】有帮助到你,希望可以给【Bug 终结者】点个赞👍,创作不易,如果有对【后端技术】、【前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!