本文共 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/