数据卷添加
直接命令添加
命令:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
主机下面的目录会自动建立
查看数据卷是否挂载成功:docker inspect 容器id 查看数据绑定
容器和宿主机之间数据是否共享?—— 共享
容器中止退出后,主机修改数据,容器再次启动后数据是否同步?—— 是
命令(带权限,相似于写保护):docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
DockerFile添加
1.根目录下新建mydocker文件夹并进入
cd /
mkdir mydocker
2.可在DockerFile中使用VOLUME指令来给镜像添加一个或多个数据卷
VOLUME["/dataVolumeContainer", "/dataVolumeContainer2", "/dataVolumeContainer3"]
由于迁移性的缘由,不能指定主机目录
3.File构建
FROM ubuntu
VOLUME ["/dataVolumeContainer1","/dataVolumeCintainer2"]
CMD echo "finished --success"
CMD /bin/bash
4.build 后生成新镜像 wcj/ubuntu
docker build -f /mydocker/Dockerfile -t wcj/ubuntu .
5.run容器
docker run -it wcj/ubuntu
经过上述步骤,容器内的卷目录地址已经知道,对应的主机目录地址呢? ——主机对应默认地址。
docker inspect 容器id 查看一下
7.数据卷容器
命名的容器挂载数据卷,其余容器经过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器
活动硬盘上挂活动硬盘,实现数据的传递
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止(只要还有一个容器挂载,数据卷就是一直在容器间互通的)
先启动一个父容器dc01,在dataVolumeContainer2新增内容
docker run -it name dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc01_add.txt
dc02/dc03继承自dc01,分别新增内容
docker run it --name dc02 --volumes-from dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc02_add.txt
docker run it --name dc03 --volumes-from dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc03_add.txt
回到dc01,能看到dc02和dc03添加的内容
删除dc01,dc02修改后dc03能否访问? ——能够
删除dc02后dc03能否访问?——能够
新建dc04继承dc03后再删除dc03?——仍是能够访问