1.什么是volume:
volume是Docker容器使用和持久化存储数据的首选,绑定挂载依赖于主机的目录结构和操作系统,卷完全由Docker管理。
2.为什么要用volume:
1.使用volume可以更方便的迁移、备份或升级镜像,更加的安全。尽量避免修改镜像的内部文件,因为你会忘记修改了哪些文件以及修改之前的文件长什么样子
2.volume可以安全的被多个容器所共享,达到容器间共享数据的要求
3.使用volume可以避免容器体积因为数据量而增大
3.volume的工作原理:
Docker将宿主机上的文件与容器内的文件做了映射,镜像是多层结构,当我们想要启动一个容器时,Docker 会在镜像上层创建一个可读写层, 容器中的文件都工作在这个读写层中,当容器删除时,与容器相关的工作文件将全部丢失。 而 Docker 卷则是直接利用主机的某个文件或者目录,它可以绕过联合文件系统,直接挂载主机上的文件或目录到容器中,这就是它的工作原理。
4.如何使用volume:
常用的volume命令:
1.创建一个名为test数据卷:
docker volume create test
2.查看一个或多个数据卷信息:
docker volume inspect test
3.列出所有数据卷:
docker volume ls
4.删除未使用的数据卷
docker volume prune
5.删除指定的数据卷
docker volume rm test
6. 运行容器时挂载数据卷:
docker run --name redis -d -v ./test:/data -p 6300:6379 Redis:latest
如上示例所示,将当前目录中的test文件夹于容器内的data文件夹做了映射,test文件夹中将保存redis容器中的所有数据文件。这样就实现了容器于文件的分离。 若数据卷不存在,则会自动创建,因此不必刻意去创建数据卷