dockerfile构建镜像

本文介绍Dockerfile的基础概念与实践,展示如何通过编写Dockerfile定制镜像,包括指定工作目录、安装软件包及设置环境变量等关键步骤。

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

dockerfile是什么

一套构建docker镜像的脚本语言,就像每种开发语言都有自己的编写规范一样,dockerfile也是如此,通过编写dockerfile文件,然后通过build,即可按照dockerfile的要求达到构建一个目标期望的镜像的目的

举个例子来说,我们直接从阿里云或者dockerhub上下载下来的镜像,有时候并不能满足我们的要求,我们实际需要的镜像可能包含更多的组件,如果在镜像生成后操作会不会特别麻烦,现在有了dockerfile,我们在dockerfile中通过命令指定我们需要的所有文件,编写完毕dockerfile,通过build之后生成的docker镜像就包含了所有的组件,从而达到满足实际需求的目的

下面先说说dockerfile编写的几个常用术语,或者说是指令,dockerfile能够最终执行就是依靠解析这些指令来完成的,
在这里插入图片描述

下面我们来实际编写一个简单的dockerfile的demo来观察一下dockerfile的运行过程,我在/usr/mydocker目录下创建一个名叫Dockerfile2的文件,内容如下,demo的大概意思是,通过本地的centos镜像构建一个新的镜像,新的镜像运行起来后默认的工作位置是/usr/local下,并且会自动安装vim 和 rzsz这两个组件,暴露80端口,最后会打印一些内容
在这里插入图片描述

#docker file test
FROM centos
MAINTAINER zcy<543325130@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install lrzsz
EXPOSE 80
CMD echo $MYPATH
CMD echo "build success ---------->"
CMD /bin/bash

dockerfile编写完毕,我们在宿主机当前目录下执行build命令来执行dockerfile文件,注意-t 后面的mycentos2表示的是新的镜像的版本号,即TAG ,最后的 . 不要忘了

docker build -f /usr/mydocker/Dockerfile2 -t mycentos2 .

这行dockerfile可以看到下面的打印内容,dockerfile是按照我们编写的内容从上到下分步骤执行的,直到最终出现了一个镜像ID才算是执行完成,
在这里插入图片描述

在这里插入图片描述
然后我们运行一下我们刚刚构建完毕的mycentos2这个镜像,可以看到成功启动,并且默认进来的位置是 /usr/local ,这个位置正是我们在dockerfile中指定的workdir
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码农叔叔

谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值