DockerFile 是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本。

一、DockerFile

 一、在home目录下创建docker-test-volume目录
cd /home mkdir docker-test-volume
 

 二、在home目录下的docker-test-volume目录创建dockerfile1文件
vim dockerfile1

dockerfile1文件文件内容如下
cat dockerfile1
 
# volume test FROM centos VOLUME
["/dataVolumeContainer1","/dataVolumeContainer2"] CMD echo "-------end------"
CMD /bin/bash
说明:在编写DockerFile文件中使用 VOLUME 指令来给镜像添加一个或多个数据卷
VOLUME["/dataVolumeContainer1","/dataVolumeContainer2","/dataVolumeContainer
3"]
出于可移植和分享的考虑,我们之前使用的 -v 主机目录:容器目录 这种方式不能够直接在
DockerFile中实现。
由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有宿主机上都存在这样的特定目录. 

三、 build后生成镜像,获得一个新镜像 kuangshen/centos
docker build -f /home/docker-test-volume/dockerfile1 -t kuangshen/centos .
有一个  .  不是意外

四、启动容器
docker run -it 8f3f865fbc7f
 

二、对应的本地文件

 通过上述步骤,容器内的卷目录地址已经知道了,但是对应的主机目录在哪里?

进入容器后在/dataVolumeContainer1目录创建containe

 
docker run -it 8f3f865fbc7f pwd cd /dataVolumeContainer1 touch container.txt
ls -l

docker inspect 8f3f865fbc7f
 

 
cd
/var/lib/docker/volumes/4f7b7be4c2e70407dd6922b089ba8b12b6949c9ef848f2d2ba3cb476e88c83a2/_data
ls
 三、容器间传递共享

1、先启动一个父容器docker01,然后在dataVolumeContainer2新增文件
退

 
docker run -it --name docker01 kuangshen/centos cd dataVolumeContainer2 touch
docker01.txt ls

 依次创建docker02、docker03、docker04
docker run -it --name docker02 --volumes-from docker01 kuangshen/centos cd
dataVolumeContainer2 touch docker02.txt ls

 
docker run -it --name docker03 --volumes-from docker01 kuangshen/centos cd
dataVolumeContainer2 touch docker03.txt ls

 
docker run -it --name docker04 --volumes-from docker03 kuangshen/centos cd
dataVolumeContainer2 touch docker04.txt ls

 验证删除父容器docker01对子容器的影响
docker rm -f docker01 docker ps

 
docker exec -it docker02 /bin/bash cd dataVolumeContainer2 ls mkdir docker2 ls

结论:docker01的删除不会改变其他容器之间的信息共享

 

 我本人观点就是父容器docker01像一个人,生了三个小孩docker02、docker03、docker04,如果docker01死了,小孩依旧是人,不会对小孩有什么影响,小孩依旧具有再次创建小孩的能力

但是每个人都是这个家庭的成员,可以对这个家庭做出改变,比如增减目录文件之类

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信