Dockerfile是一个用来构建Docker镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
下面通过一个示例,来展示通过Dockerfile构建一个镜像
# 1、新建一个目录用来挂载之后的路径 mkdir /home/docker-test-volume # 2、进到上面新建的目录,然后通过vim新建一个dockerfile文件,并在文件里编辑脚本 cd /home/docker-test-volume vim dockerfile # dockerfile脚本内容 FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash # 3、执行脚本,构建镜像,镜像名special-centos docker build -f /home/docker-test-volume/dockerfile -t special-centos:1.0 . # 4、查看构建的镜像 docker images
FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash
(1)以上面的构建脚本为例,进行分析:
- FROM centos:表示以centos为基础
- VOLUME [“volume01”,“volume02”]:指定挂载目录,这里只指定容器内的目录,是匿名挂载(与之前通过-v命令的匿名挂载类似)
- CMD echo “----end----”:输出打印end
- CMD /bin/bash:以bash运行
(2)启动special-centos容器,查看挂载目录
# 启动容器 docker run -it 69839a0284ba /bin/bash # 进入容器内的挂载目录 cd volume01 #在容器内的挂载目录中,新建一个文件 touch test01.txt
(3)由于前面是匿名挂载,这里需要查看容器的信息,找到在主机上对应的挂载目录
# 查看运行的容器 docker ps #查看容器的信息 docker inspect c7a7e6243d4a
这里,找到主机上对应的挂载目录是:
/var/lib/docker/volumes/e1ad5ab60aed2639d58012208a343a7552b61b8e805d3fad102a08d2e8847b07/_data
进到这个目录中,查看里面是有前面新建的test01.txt文件的,说明挂载没问题。
制作镜像的方式:
- commit镜像
- Dockerfile定制镜像
数据卷挂载的方式:
- 通过命令直接挂载(指定路径挂载、匿名挂载、具名挂载)
- 通过Dockerfile挂载



