docker学习(八)——dockerFile

本文详细介绍了DockerFile的构建过程与基础知识,包括关键指令的使用,如FROM、RUN、ADD等,以及CMD与ENTRYPOINT的区别。并通过实战案例,如构建自定义CentOS与Tomcat镜像,深入理解DockerFile的编写技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DockerFile介绍

dockerFile是用来构建docker镜像的文件!命令参数脚本!
构建步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建成一个镜像
  3. docker 运行镜像
  4. docker push 发布镜像(DcokderHub, 阿里云镜像仓库)

如centos的
在这里插入图片描述

很多官方镜像包都是基础包,很多功能没有,我们通常会自己搭建自己的镜像

DockerFile构建过程

基础知识:

  1. 每个保留关键字(指令)都是必须大写字母
  2. 执行从上到下顺序执行
  3. #表示注释
  4. 每一个指令都会创建提交一个新的镜像层,并提交

dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单
Dcoker镜像逐渐成为企业交付的标准,必须要掌握
步骤: 开发,部署,运维。。。缺一不可
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行产品
Docker容器:容器就是镜像运行起来提供服务器

DockerFile的指令

在这里插入图片描述

FROM      基础镜像,一切从这里开始构建
MAINTAINER   镜像是谁写的,姓名+邮箱
RUN        镜像构建的时候需要运行的命令
ADD        步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR     镜像的工作目录
VOLUME     挂载的目录
EXPOST      保留端口配置 若未指定,则需要使用-p运行镜像指定端口号
CMD        指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT    指定这个容器启动的时候要运行的命令,可以追加命令
COPY       类似ADD将我们文件拷贝到镜像中
ENY        构建的时候设置环境变量

实战:构建自己的centos

DockerHub中99%的镜像都是从scratch这个基础镜像过来的,然后配置需要的软件和配置来进行构建

  1. 在home目录下新建一个dockerFile目录,在里面我们构建dockerFile文件,名叫mydockerfile-centos

在这里插入图片描述
2. 编写mydockerfile-centos中内容
在这里插入图片描述

命令: docker build -f dockerfile文件路径 -t 镜像名:[tag] .

在这里插入图片描述

测试运行:
在这里插入图片描述
我们会发现这里pwd和ifconfig都可以使用了,并且当前目录为/usr/local即刚才设置的路径

我们还可以通过docker history 镜像id来查看镜像的操作历史
在这里插入图片描述
所以我们平时拿到一个镜像就可以研究下这个镜像时如何得到的了

CMD和ENTRYPOINT区别

测试CMD

此处我们再次创建一个dockerfile文件
在这里插入图片描述
然后再build,启动容器
在这里插入图片描述
会发现此处启动容器后控制台会发现我们的ls -a命令直接生效
此时我们推出重新启动容器并添加一个命令-l,即

docker run centoscmstest:0.1 -l

在这里插入图片描述
会发现报错,因为在cmd的清理下, -l替换了ls -a,而-l不是命令,所以报错
我们需要将完整的命令写出来才正确,如下
在这里插入图片描述

测试ENTRYPOINT

重复上述操作即可,会发现后面直接加-l是可以的

实战:tomcat镜像

  1. 新建一个tomcat目录在其内准备好如下两个压缩包
    在这里插入图片描述
  2. 创建redeme文件以及Dockerfile文件,官方命名Dockerfilebuild会自动寻找这个文件,就不需要-f指定了
    在这里插入图片描述
    在这里插入图片描述
  3. 构建镜像
    在这里插入图片描述
  4. 现在启动我们自己构建的tomcat镜像,并且将webapps下test目录挂载到本地,同时将日志目录也挂载
    在这里插入图片描述
  5. 访问测试
  6. 发布项目(由于做了卷挂载,我们直接在本地编写项目就可以发布了)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值