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 小总结
热门推荐
人工智能在风景园林中的应用:未来园林设计的革命性突破
冬天怕冷喝什么中药泡水,温暖你的身心?
脚气是怎么回事?脚气的病因、症状及预防措施
石墨烯航空电池助力低空经济“高飞”
车企2025年销量目标出炉
“VR/AR游戏+非遗”,数字科技赋能非遗创新发展
钢质门是什么门_优缺点有哪些_价格一般多少_安装知识
房屋的继承哪种方式更合适
位移传感器故障诊断方法的解析
安防系统有哪些组成,安防系统如何实现对潜在威胁的识别和预警
知识科普:太阳星座&月亮星座&上升星座的区别?
去医院看病的完整流程指南
如何提高仓库空间利用率?优化方案与设备使用指南
大数据的价值和变现途径有哪些
家里蚂蚁多怎么彻底清除?6个绝招让你轻松搞定
交通服务信息共享平台:构建高效出行
跨栏女王纪录31年无人能破,现在大学任教,吴艳妮退役也当老师?
芍药种子的最佳播种时间是什么时候?几月份播种?
告别泡沫烦恼:从敌人到盟友——转变视角,合理利用皂化油泡沫的艺术
宠物蝌蚪饮食解析
一文帮助您判定属于中医九种体质哪一种
黑蚂蚁粉的功效与作用(有哪些用处)
无人机+三维建模:倾斜摄影技术详解
成人大便酸臭?揭开背后可能藏着的健康秘密!
中药饮片调配的注意事项与要点
电热水器一般用多少平方的线,家居安全选购指南
Unity手游开发分辨率设置,防止运行后错乱
林蛙油的功效与吃法是什么
自制猫罐头的多种配方、喂养指南及保存方法
风险评估标准是什么