dockerfile是用来构建docker镜像的文件
1.编写dockerfile文件
2.docker build构建成为一个镜像
3.docker run运行镜像
4.docker push发布镜像(阿里云镜像仓库,dockerhub)
#创建一个dockerfile文件 FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash #生成自定义镜像 docker build -f /home/dockerfile/dockerfile_01 -t zy/centos:1.0 . #启动自定义容器 docker run -it XXXX /bin/bash
docker inspect检查生成的容器
可以观察到生成的容器Mounts属性
"Mounts": [ { "Type": "volume", "Name": "6e42e05edcd1c255e2a8078578f7c37d047d6a4c6225bd067124f2c18ec5eb78", "Source": "/var/lib/docker/volumes/6e42e05edcd1c255e2a8078578f7c37d047d6a4c6225bd067124f2c18ec5eb78/_data", "Destination": "/volume01", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }, { "Type": "volume", "Name": "8fa3ed9a6a4740c1afcfe9cc6a7681e99f33911d1aaf8f6320cd295445d42815", "Source": "/var/lib/docker/volumes/8fa3ed9a6a4740c1afcfe9cc6a7681e99f33911d1aaf8f6320cd295445d42815/_data", "Destination": "/volume02", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ]
容器间使用数据卷共享
#先创建容器df01
docker run -it --name df01 1a1a3585a6da
#创建容器df02,并指定使用的容器卷来自df01
docker run -it --name df02 --volumes-from df01 zy/centos:1.0
#这样在df01数据卷目录volume01,volume02下创建的文件会同步到df02容器中,达到容器间数据共享
注意:即使删除df01容器,volume01,volume02容器卷依然存在。
#编写dockerfile文件 FROM centos CMD ["ls","-a"] #构建镜像 -t: 镜像名字及标签 通常为name:tag 或 name格式 docker build -f dockerfile-cmd-test -t cmdtest . #run运行 docker run [IMAGEID]
结论:
1.利用容器卷性质,可以用于容器之间配置信息的传递。
2.数据卷生命周期从被创建开始,直至没有容器使用为止。