docker基础(05):构建镜像
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/8894133.html
创建镜像的方式
更新镜像:使用docker commit命令,详见:https://www.cnblogs.com/uncleyong/p/18062427
构建镜像:使用docker build命令,需要创建Dockerfile文件
Dockerfile
Dockerfile是用来构建Docker镜像的文件,是由一系列指令和参数构成的脚本,从FROM命令开始,紧接着各种命令、参数等,最终会生成一个新的镜像;
第一条指令必须是FROM,指定Base Image基础镜像,指令按从上往下的顺序,依次执行,每条指令都会创建一个新的镜像层并提交;
常用指令
1 2 3 4 5 6 7 8 9 10 11 | FROM:指定基础镜像,即当前新镜像是基于哪个镜像的 MAINTAINER:指定作者 RUN:指定镜像构建过程中要运行的命令 ENV:设置环境变量 WORKDIR:指定默认的工作目录,即进入容器后默认进入的目录 VOLUME:创建挂载点,也称容器数据卷,用于数据共享和持久化 CMD:指定容器启动时要运行的命令,与RUN不同的是, 这些命令不是在镜像构建过程中执行的 ENTRYPOINT:指定容器启动时要运行的命令 COPY:拷贝文件/目录到镜像中 ADD:拷贝文件到镜像中,且会自动解压缩 EXPOSE:指定对外暴露的端口 |
我们来看下官方tomcat的Dockerfile是如何写的
指定基础镜像、环境变量
暴露端口8080
运行容器,就把tomcat启动起来
示例:自定义tomcat镜像
有时候,官方提供的镜像不一定满足我们的需求,我们想用自己期望的jdk、tomcat版本,那么,我们可以基于一个精简版centos来制作
创建Dockerfile
内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | FROM centos MAINTAINER qzcsbj # 拷贝文件 ADD jdk-8u211-linux-x64.tar.gz /usr/local ADD apache-tomcat- 9.0 . 19 .tar.gz /usr/local # 配置环境变量 ENV JAVA_HOME /usr/local/jdk1. 8 .0_211 ENV CLASSPATH .:$JAVA_HOME/lib ENV CATALINA_HOME /usr/local/apache-tomcat- 9.0 . 19 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin WORKDIR $CATALINA_HOME EXPOSE 8080 # 镜像运行容器就把tomcat启动起来 CMD [ "catalina.sh" , "run" ] |
构建镜像
查看镜像
运行容器
1 2 3 4 | docker run \ --name qzcsbj_tomcat \ -p 8181:8080 \ -d qzcsbj/tomcat:1.0 |
访问:192.168.0.105:8181
示例:自定义jmeter可视化监控平台镜像qzcsbj7-influxdb_grafana
详见:https://www.cnblogs.com/uncleyong/p/14009804.html
__EOF__

本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-03-09 阿里云初次使用教程