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 小总结
热门推荐
在电表的选择上0.5级0.2级0.2S有什么区别怎么选择?
协和医生说 | 运动真的可以预防脑卒中吗?
在美国开设银行卡的年龄要求及相关事项全解析
自动驾驶中的长尾问题
医院不愿开的14种中成药,堪称家庭健康“守护神”,虽不贵但好用
如何判断是否获得支撑?这种支撑的有效性如何评估?
如何选择合适的制氮机
温泉水乐园设计中的互动性创新:增强游客参与感与体验
如何规定网络安全色:从标准化到品牌应用的全面指南
如何提高光伏电站发电量:全面科普与建议
怎样防范跨境支付中的网络欺诈?
本科生推翻姚期智40年前猜想,证明哈希表查询效率可达常数级别
患者满意度提升策略——基于医疗版客户生命周期管理
可再生能源技术在城市供能中的应用
十类适合家用的炒菜锅有哪些 炒菜用什么锅最好最健康
筋膜粘连:能否揉开?如何正确操作?
喝纯牛奶是减肥还是增肥?
小腿疼痛、酸胀,如何自我缓解?4个简单且实用的按摩方法告知您
掌握sfc /scannow命令:扫描修复系统文件的最佳指南
这样的“游戏”千万别玩!
这5种“发物”可能让你的结节悄悄癌变,专家教你如何饮食
Excel数据处理:步骤详解与技巧
甲沟炎症状分析与有效处理方法全解读,助你健康生活
2024年医药行业关键词回顾
2025年各星座财运分析
项目经理如何复盘:从目标设定到持续改进的完整指南
我的世界精灵宝可梦:铝板合成方法及游戏技巧分享
使用 FFmpeg 实现录屏和录音
孙传芳发家史:从无名后生成为“东南王”的15年
江门蓬江:一座藏不住的旅游城市