实际上你可以理解为docker的基础配置文件即使dockerfile,他来构建docker的image镜像。这部分先简单的认识一下dockerfile,弄一个简单的dockerfile,然后通过这个dockerfile做一个镜像。

创建dockerfile

我们首先可以到一个指定的目录,生成一个dockerfile。我这里是home目录下创建一个目录。

通过vim创建一个简单的dockerfile,起的名字叫dockerfile1,具体内容如下,就是一个简单的centos容器。

FROM centos
VOLUME ["volume01","volume02"]

CMD echo "-----VOLUME END-----"
CMD /bin/bash

大概意思是centos环境,有两个挂载数据卷,再打印一句话。

bulid自己创建的dockerfile生成镜像

直接用bulid命令,可以通过docker bulid --help来看一下具体的build的具体命令内容。

docker 本地目录编译 dockerfile 创建目录_docker 本地目录编译


通过上面的命令介绍,我们实际的通过build命令操作一下,具体如下:

#这里是我已经cd到dockerfile所在的文件夹下了,所以用了./dockerfile
# -t就是给个名字加个tag,
#一定要注意 zhangpeng/centos:1.0 .后面这个点,表示当前目录的意思

docker build -f ./dockerfile1 -t zhangpeng/centos:1.0 .

如果想如绝对路径也可以,把./dockerfile1前面这个点换成绝对路径。

执行命令我们可以看到,按照我们的dockerfile文件的内容来生成的,这里我的文件没注意截图,我借用别人的截图来展示build命令执行的过程。

docker 本地目录编译 dockerfile 创建目录_docker 本地目录编译_02

验证dockerfile生成的镜像

这里我们通过docker ps命令就可以看到我们自己生成的镜像zhangpeng/centos,当然既然是镜像,一定要执行一下看看能不能生成容器试试。

docker run -it 4f6369485811 /bin/bash

然后退出保证容器不被关掉。查看docker ps,这里创建时间最近的那个就是我们的,当然你可以去对比一下image的id

docker 本地目录编译 dockerfile 创建目录_绝对路径_03


docker 本地目录编译 dockerfile 创建目录_容器_04


然后看一下元数据,我们不是挂载两个目录吗,看一下具体挂载的地址在哪。

docker inspect 9dc6166450a9

看一下mounts这块

docker 本地目录编译 dockerfile 创建目录_容器_05


这就是dockerfile的初体验,下一个简单的dockerfile然后构建一个镜像,