1、什么是容器的数据卷?
容器的数据卷是指在运行一个容器的时候会产生一些数据,这些数据是独立于容器的生命周期,在停止或者删除容器的时候,它们并不会被回收,数据卷的设计就是为了数据的持久化,并且实现容器之间的数据共享。
有三种数据卷类型:
宿主机数据卷:直接在宿主机的文件系统中但是容器可以访问(bind mount)
命名的数据卷:磁盘上Docker管理的数据卷,但是这个卷有个名字。
匿名数据卷:磁盘上Docker管理的数据卷,因为没有名字想要找到不容易,Docker来管理这些文件。
备注:数据卷其实都在(如果没有网络文件系统等情况下)宿主机文件系统里面的,
只是第一种是在宿主机内的特定目录下,而后两种则在docker管理的目录下,这个目录一般是 /var/lib/docker/volumes/
2、数据卷的作用和特点
作用:
1)、容器之间共享数据
2)、保存容器生成的数据,方便查看
特点:
1)、数据卷中的更改直接在容器中是生效的
2)、数据卷的生命周期一直持续到没有容器使用它为止,而且不会无故消失
3)、数据卷的更新不会保存到镜像中去
3、数据卷的添加
1)、命令行直接挂载
docker run -it -v /宿主机绝对路径目录:/容器内目录:rwo 镜像名 如果路径不存在,会直接自动建立
rwo:ro代表只读,rw是读写,一般情况就是这两种
查看挂载的信息:
docker ps -a查看出容器的id
docker inspect 容器id 查看容器的详细信息,包含数据卷的挂载信息
2)、dockerfile添加数据卷
FROM 镜像名
VOLUME ["/生成的目录路径"] -- privileged=true
CMD echo "success build"
CMD /bin/bash
docker build -f /docker/DockerFile -t 命名空间/镜像名
docker run -d --name vm1 镜像名称 运行容器
docker images 查看自己通过dockerfile构建的镜像
我们知道有依赖关系,字容器依赖于父容器,当然其中就有数据卷的依赖,假设父级容器上挂有数据卷,那么依赖与它的