本系列主要分为以下六大部分,正在更新中,尽请期待!
点击关注本专栏
提示:已经更新的或正在更新的文章前面打勾了哈!
将数据存储在容器中,一旦容器被删除,数据也会被删除。同时也会使容器变得越来越大,不方便恢复和迁移。
将数据存储到容器之外,这样删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速的恢复。
卷(volume
)是docker 容器存储数据的首选方式,卷有以下优势:
接下来我们结合上一篇文章Docker容器数据卷继续完善一下docker的命令吧!
docker volume ls
docker volume create 卷名
docker volume inspect 卷名
docker volume rm 卷名
docker volume prune
docker 提供了以下存储选项:
volume
卷bind mount
绑定挂载tmpfs
临时挂载卷存储在主机文件系统分配一块专有存储区域,由 Docker(在 Linux 上)管理,并且与主机的核心功能隔离。非 Docker 进程不能修改文件系统的这一部分。卷是在 Docker 中持久保存数据的最佳方式。
卷适用于以下类型的用例:
我们可以使用该命令显式的创建卷dome,或者在容器创建时创建卷,如下:
docker volume create dome
绑定挂载可以将主机文件系统上目录或文件装载到容器中,但是主机上的非 Docker 进程可以修改它们,同时在容器中也可以更改主机文件系统,包括创建、修改或删除文件或目录,使用不当,可能会带来安全隐患。
绑定挂载适用于以下类型的用例:
/etc/resolv.conf
从主机挂载到每个容器中来。Maven target/目录
挂载到容器中,这样每次在Docker主机上构建Maven项目时,容器都可以访问重建的工件。如果您以这种方式使用Docker进行开发,那么您的生产Dockerfile会将生产就绪的工件直接复制到映像中,而不是依赖于绑定挂载。我们通过 -v
选项绑定挂载一个目录/dome/html到容器中,如下:
docker run -dt -v /dome/html:/usr/html/html --name dome dome
tmpfs挂载仅存储在主机系统的内存中,从不写入主机系统的文件系统。当容器停止时,数据将被删除。
tmpfs临时挂载适用于以下类型的用例:
我们通过–tmpfs选项挂载一个内存块,如下:
docker run -dt --name dome_tmpfs --tmpfs /etc/running dome
看看本专栏文章有哪些吧!
本系列文章目录:
点击关注本专栏
可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!
当使用 -v
参数的时候,如果是 docker run 宿主机绝对路径:Docker容器内部绝对路径
的方式,就是挂载,会有空挂载的问题;如果是 docker run -v 不以/开头的路径:Docker容器内部绝对路径的方式
,就是绑定,Docker 会自动管理,Docker 不会将它当做目录,而是当做卷。