DockerFile 镜像打包全流程详解+例子
创作时间:
作者:
@小白创作中心
DockerFile 镜像打包全流程详解+例子
引用
CSDN
1.
https://blog.csdn.net/qq_38304320/article/details/120812153
Dockerfile是用于构建Docker镜像的脚本文件,通过定义一系列的指令来自动化构建过程。本文将详细介绍Dockerfile的基础知识、常用指令以及完整的镜像打包流程,并通过实际例子帮助读者掌握Dockerfile的使用方法。
Dockerfile基础知识
Dockerfile是一个文本文件,包含了构建Docker镜像所需的所有命令和参数。以下是Dockerfile的一些基本规则:
- 每个保留关键字(指令)都必须是大写字母
- 指令从上到下顺序执行
#表示注释- 每个指令都会创建一个新的镜像层并提交
Dockerfile指令详解
示例1:创建一个带有vim和ifconfig的CentOS镜像
官方的CentOS镜像默认不包含vim和ifconfig命令,我们可以通过以下Dockerfile来创建一个包含这些工具的镜像:
FROM centos
MAINTAINER ldj<666@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "----end------"
CMD /bin/bash
构建镜像的命令如下:
docker build -f /root/ldj/docker-file/dockerfile2-centos -t ldj-centos:1.0 .
示例2:CMD和ENTRYPOINT的区别
CMD和ENTRYPOINT都是用于指定容器启动时运行的命令,但它们的行为有所不同:
- CMD:只有最后一个会生效,可以被替代
- ENTRYPOINT:不会被替代,可以追加命令
CMD命令演示
Dockerfile内容:
FROM centos
CMD ["ls","-a"]
运行命令:
docker run eee738131140 -l
这将导致错误,因为-l替换了CMD中的命令。正确的做法是:
docker run eee738131140 ls -h /root
ENTRYPOINT命令演示
Dockerfile内容:
FROM centos
ENTRYPOINT ["ls","-a"]
运行命令:
docker run bf83f4af585c
docker run bf83f4af585c -h
ENTRYPOINT不会被覆盖,可以追加命令。
示例3:创建一个Tomcat镜像
这是一个更复杂的示例,展示了如何创建一个包含JDK和Tomcat的镜像:
Dockerfile内容:
FROM centos
MAINTAINER ldj<666@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-17_linux-x64_bin.tar.gz /usr/local
ADD apache-tomcat-9.0.54.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk-17
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.54
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.54/bin/logs/catalina.out
构建镜像:
docker build -t diytomcat .
启动镜像:
docker run -d -p 8088:8080 --name ldjtomcat -v /root/ldj/tomcat/test:/usr/local/apache-tomcat-9.0.54/webapps/test -v /root/ldj/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.54/logs diytomcat
发布镜像:
- 注册Docker Hub账号
- 登录Docker Hub
docker login --help
- 标记并推送镜像
docker tag 10ed4ccc76de ldj/centos:1.0
docker push ldj/centos:1.0
热门推荐
福建棒垒球协会:以棒球为媒,架起两岸青少年交流之桥
家庭版凉拌土豆丝的制作方法
大才子惹怒皇帝、被流放伊犁,百日新疆行让他走上了文学高峰
“中国雪都”四大滑雪度假区:雪道与美景并存,风景这边独好!
新疆伊犁六星街:百年文化沉淀 感受和合之美
《追龙》:再现香港六七十年代最大毒枭与贪腐探长的故事
追龙:甄子丹刘德华演绎香港黑帮探长的权力角逐
从场景到演技:《追龙》团队如何重现香港六七十年代风云
素描培训班教你玩转光影技巧
高考美术生必看:素描技法大揭秘
《刺猬》预售开启 大家族齐亮相葛优王俊凯智斗“神婆”
吃的清爽真的会瘦,分享6道低脂家常菜,营养又健康
营养师提醒:喝果汁的三大误区与正确方法
这份硬币收藏入门指南请查收!
豹子号、恐龙号……纪念钞特殊号码你了解多少?
【行业观察】我国普通纪念币发行机制与发行量研究
从喜欢就买到以藏养藏,纪念币该怎么玩?
长城纪念币系列:一元、五角、二角、一角,收藏价值深度解析
专家解读:孕期发热咳嗽等四大症状用药指南
疫情期间孕妇用药指南:四类抗病毒药物使用建议
孕期用药攻略:从感冒药到补充剂的安全指南
宁波八大景点全攻略:从天一阁到东钱湖
宁波新发现宋元明清遗址,出土338件文物展现村落变迁
宁波四明山金秋自驾指南:细北线浒溪线串联9处绝美秋景
黄芪口服液的功效与作用
脑心舒口服液禁忌症与注意事项
阿胶黄芪口服液不能和哪些药一起使用
吴锡豪:从潮州帮小弟到年赚3亿的香港毒品大亨
从个人卫生到居住环境:老年人养生实用指南
个性化关怀:十种方法帮助老人维持良好卫生习惯