docker存储
docker存储分类
1、volumes
本地文件系统/var/lib/docker/volumes目录下的存储空间,由docker管理,非docker进程不应该修改该空间的内容,docker容器持久化数据存储的最佳方式
1.1 named volume
创建容器时指定volume name,如果volume不存在,docker会自动创建
docker run -itd -v volume01:/mnt/1 --name namedVolTest centos
查看容器的构建信息
docker inspect namedVolTest
查看volume信息
进入容器查看文件系统挂载情况
docker exec -it namedVolTest bash
1.2 anonymous volume
容器挂载volume时不指定volume name,docker生成随机字符串为volume分配 name,
为容器挂载匿名卷
docker run -itd -v /mnt/1 --name anonymousVolTest centos
查看容器的构建信息,可以看到docker随机字符串为匿名卷命名
docker inspect anonymousVolTest
执行以下命令,列出docker管理的volume
docker volume ls
进入容器,查看系统文件系统挂载情况,可以看到/dev/sda1即为上面的匿名卷
docker exec -it anonymousVolTest bash
1.3 关于volume的一点总结
通过实验我们知道,匿名卷和命名卷出了命名方式不同,使用上是一样的,在容器内部作为磁盘分区挂载使用,且若挂载点目录下有文件或目录,docker会将挂载点下的文件和目录复制到volume。如果挂载点不存在,docker会自动创建挂载点。
2、bind mounts
本地文件系统的目录或文件,docker进程与非docker进程都可以对其进行操作
查看容器的tmp目录,有如下内容:
新建容器并为容器添加bind mounts
docker run -it -d -v /opt:/tmp --name bindMountTest centos
3、tmpfs mounts
占用主机内存空间,该类型存储的数据不会写入本地文件系统