1. Dockerfile是什么
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
2. Dockerfile脚本分析
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文件的,说明挂载没问题。
3. 小结
制作镜像的方式:
- commit镜像
- Dockerfile定制镜像
数据卷挂载的方式:
- 通过命令直接挂载(指定路径挂载、匿名挂载、具名挂载)
- 通过Dockerfile挂载