博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker基础-7-使用Dockerfile DIY第一个镜像
阅读量:4302 次
发布时间:2019-05-27

本文共 1157 字,大约阅读时间需要 3 分钟。

前面我们把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,就可以启动一个容器,容器下一篇开始介绍。

转载地址:http://hzows.baihongyu.com/

你可能感兴趣的文章
C++中关于[]静态数组和new分配的动态数组的区别分析
查看>>
MFC中将CBitmap画到cdc上
查看>>
MFC中获取任务栏大小
查看>>
MFC中OnCtlColor的用法(改变控件颜色)
查看>>
MFC与OpenCv中的图片转换实例
查看>>
mfc中主窗体显示(任务栏上方显示)
查看>>
MFC改变对话框背景图片实例
查看>>
浅谈MFC中BitBlt与StretchDIBits的区别
查看>>
关于HBITMAP,CBITMAP,BITMAP的转换以及图像显示的一点归纳
查看>>
CDC中图片绘制到控件上
查看>>
C#用到windows 消息列表Message类MSG的id代号
查看>>
C++ Map用法详解
查看>>
C++中vector作为参数的三种传参方式
查看>>
OpenCV中Mat总结
查看>>
opencv----(1) mat最好用,和IplImage,cvmat 比较
查看>>
OpenCV学习笔记之 ( 三 ) MFC显示Mat图片
查看>>
彻底解决显示Opencv中Mat图像到Mfc窗口问题
查看>>
在MFC中显示cv::Mat
查看>>
在MFC图像控件上显示opencv Mat格式图片
查看>>
在OpenCV中将cv::Mat绘制到MFC的视图中
查看>>