【Docker基础系列】Docker中如何管理数据
源自专栏《docker常用命令系列&&k8s系列目录导航》
文章目录
概览
在默认情况下,所有在容器内创建的文件都存储在一个可写的容器层中。这意味着:
- 当容器不再存在时,数据不会持久保存,如果其他进程需要这些数据,则很难从容器中获取数据。
- 容器的可写层与运行容器的主机机器紧密耦合。您无法轻松地将数据移动到其他位置。
- 写入容器的可写层需要一个存储驱动程序来管理文件系统。存储驱动程序提供一个联合文件系统,使用Linux内核。这种额外的抽象会降低性能,与直接写入主机文件系统的数据卷相比。
Docker为容器在主机机器上存储文件提供了两种选项,以便文件在容器停止后仍然持久保存:数据卷和绑定挂载。
Docker还支持容器在主机机器内存中存储文件。这些文件不会持久保存。如果您在Linux上运行Docker,则会使用tmpfs挂载将文件存储在主机的系统内存中。如果您在Windows上运行Docker,则会使用命名管道将文件存储在主机的系统内存中。
选择正确的挂载类型
无论您选择使用哪种类型的挂载,从容器内部看,数据都是相同的。它会以目录或容器文件系统中的单个文件的形式暴露。
想要更清晰地理解数据卷、绑定挂载和tmpfs挂载之间的区别,可以考虑数据在Docker主机上的存储位置。
挂载类型及其在Docker主机上的位置
-
数据卷存储在Docker管理的主机文件系统的一部分(在Linux上为
/var/lib/docker/volumes/