Docker基础-7-使用Dockerfile DIY第一个镜像

本文详细介绍通过Dockerfile创建基础镜像的过程,包括环境搭建、C语言代码编译及镜像打包步骤,适合初学者实践。

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

前面我们把Docker的学习环境搭建好了,也学习了一些镜像的命令,这篇来简单学习下dockerfile制作一个镜像文件,代码只有三行,先制作一个基础的镜像文件。复杂的dockerfile我们暂时不关心。

1.创建一个hello-docker的文件夹

2.创建一个hello.c文件,代码如下,然后编译成可执行文件

保存文件,注意上面分号。

要编译c语言代码,我们需要借助gcc这个工具。

第一步,yum安装gcc

输入shell命令 sudo yum install gcc, 回车,根据提示敲y,执行安装。

第二步,yum安装glibc-static

敲入命令sudo yum install glibc-static,回车,根据提示输入y进行安装。编译hello.c文件

上面-static是静态编译,上面编译完之后,产生了一个hello的可执行文件。我们来执行,测试下效果。

 

3.制作镜像文件

上面我们制作好了一个可执行文件,接下来就是本篇的重点,如何通过dockerfile来把这个可执行文件打包成一个镜像。

在当前路径下创建一个Dockerfile文件,输入如下代码

就三行代码,保存退出。

这里解释下三行代码的含义:

第一行,FROM scratch, FROM是dcokerfile中的一个关键字,意思就是你要制作的这个镜像是从那一层镜像的基础上。如果我们只想制作一个基础镜像,不依赖其他层的文件或者镜像,官网告诉我们需要使用scratch这个命令,通过这个命令制作出来的镜像就是一个base image。

第二行, ADD hello /, 其中ADD是关键字,ADD就是添加的意思,有时候我们这个地方也会使用COPY 复制这个命令,以后学习多了就会使用这个命令。这行代码意思就是把可执行文件hello添加到将要制作镜像的根目录下(/表示根目录)。

第三行,CMD [“具体的命令”],这里CMD也是一个关键字,里面这行命令就是,在根目录下执行hello这个文件。

我们把dockerfile文件写好了,接下来就是通过docker build命令来制作镜像文件。

上面红圈的build是构建镜像的命令,结尾不要省略点,点表示在当前目录去找dockerfile文件去执行构建。看构建记录,显示有三个step,其实就是三层,由于我们是base image,所以 FROM这一层其实是没有,其实就是两层的一个镜像文件。

4.启动容器,观察打印效果

查看本机镜像文件

我们刚刚制作好的镜像文件已经显示出来了。

启动一个容器,测试执行效果

这里又要学习一个容器执行的命令,什么是容器,我们后面来介绍和学习。

命令docker run 后面跟着image的名称或者id,就可以启动一个容器,容器下一篇开始介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值