Docker高级篇:DockerFile深度解析与实战
创作时间:
作者:
@小白创作中心
Docker高级篇:DockerFile深度解析与实战
引用
1
来源
1.
https://developer.aliyun.com/article/1646527
二、高级篇(大厂进阶)
2.DockerFile解析
2.1 是什么
问题:DockerFile是什么?
答案:Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
构建三步骤
- 编写Dockerfile文件
- 使用docker build命令构建镜像
- 使用docker run命令依镜像运行容器实例
2.2 DockerFile构建过程解析
Docker执行Dockerfile的大致流程:
- 从基础镜像运行一个容器
- 执行一条指令并对容器作出修改
- 执行类似docker commit的操作提交一个新的镜像层
- 基于刚提交的镜像运行一个新容器
- 执行dockerfile中的下一条指令直到所有指令都执行完成
2.3 DockerFile常用保留字指令
注意点1:ENV指令用来在构建镜像过程中设置环境变量
注意点2:ENTRYPOINT指令用于指定容器启动时要运行的命令格式和案例说明
注意点3:RUN指令有两种格式
shell格式
exec格式
注意点4:CMD指令用于指定容器启动后的要干的事情
- 注意点5:小总结
2.4案例
2.4.1自定义镜像mycentosjava8
使用步骤:
- 编写Dockerfile文件
- 构建:docker build -t 新镜像名字:TAG .
- 运行:docker run -it 新镜像名字:TAG
注意点1:JDK的下载镜像地址,官网下载地址:https://www.oracle.com/java/technologies/downloads/#java8
其他下载地址:https://mirrors.yangxingzhen.com/jdk/注意点2:执行命令创建目录:
mkdir /myfile
cd /myfile
vim Dockerfile
Dockerfile内容如下:
FROM centos:7
MAINTAINER zzyy
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
- 注意点3:构建命令
docker build -t centosjava8:1.5 .
- 注意点4:执行命令:docker build -t centosjava8:1.5 .可能会报错,原因是版本不匹配。需要将Dockerfile的from命令配置为
FROM centos:7
- 注意点5:运行命令
docker run -it centosjava8:1.5 /bin/bash
- 注意点6:再体会下UnionFS(联合文件系统)
2.4.2 虚悬镜像
注意点1:虚悬镜像是指仓库名、标签都是的镜像,俗称dangling image
注意点2:Dockerfile写一个虚悬镜像
vim Dockerfile
from ubuntu
CMD echo 'action is success'
docker build .
- 注意点3:虚悬镜像查看命令
docker image ls -f dangling=true
- 注意点4:虚悬镜像删除命令
docker image prune
2.5 小总结
热门推荐
周易地火明夷卦详解
圆明园12尊兽首已经回归祖国8尊,还有4尊今何在?
“截止”还是“截至”?别再混淆不清,其实很好区分!
垃圾电厂的安全培训
补肝功能药物副作用
重庆老火锅的由来和历史 重庆火锅文化内涵是什么
专家解读:西夏陵如何见证中华文化多元一体格局
管状腺瘤怎么检查
耐切割钨丝能否暴露在强碱中?
手部脱毛后是否可以涂护手霜
禅宗认为“见性成佛”,既然“成佛”这么容易,现实为何会这么难
上海药物所合作揭示靶向肝细胞膜鞘脂代谢改善MASH的机制
工资追回策略:多角度出发,提高追回成功率
黑曜石的四种神秘变种:从纯黑到金红,每种都有独特魅力!
高盛最新报告:想要盘活经济,就让女人多干活
“512”数字背后的深刻含义:铭记历史,珍惜生活中的点滴美好
与学位“分手”后的大学英语四六级
河南:花生高产优质新品种培育推广成效显著
定期租约到期后如何处理续租问题?
传统戏曲如何吸引年轻人,听听戏曲人怎么说
安置房能不能出售?一文详解安置房交易规则
安置房买卖有什么限制?与商品房有何不同?
【AI读论文】自动数据处理和特征工程综述
Blender 学习 “核爆” 级推荐:从入门到精通的终极指南
低成本全屋智能家居改造实用指南:省钱与高效双赢方案
天体物理学家首次观察到中子星合并过程中重元素的产生
企业以违反内部规章制度为由解雇员工是否合法
工龄关乎矿山人的工资、补贴和休假,你还不知道这些就亏大了!
聋哑人能驾驶证吗
《怪诞小镇》:一部独特的儿童冒险动画,也能让成年人沉迷其中