是什么
docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然就没有了。为了能保存数据在docker中我们使用数据卷。
特点
- 数据卷可在容器之间共享或重用数据
- 卷中的更改可以直接生效
- 数据卷中的更改不会包含在镜像更新中
4.数据卷的生命周期一直持续到没有容器使用它为止。
容器内添加
1.直接命名添加
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
2. docketFile添加
JAVAEE hello.Java -->hello.class
Docker images ====> DockerFile
1. 根目录下新建mydocker文件夹并进入
2.可在dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷
VOLUME["/dataVolumeContainer","dataVolumeContainer2","/dataVolumeContainer3"]
说明:
出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在dockerfile中实现,由于宿主机目录是依赖特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。
3.File构建
# volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,--------success1"
CMD /bin/bash
docker run -it -v /host1:/dataVolumeCantainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
4.build后生成镜像
docker build -f /mydocker/DockerFile -t zxt/centos
docker build -f dockerfile的绝对路径 -t 命名空间/镜像名字 .
5.run 容器
数据卷容器
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。