有些容器会自动生成一些数据,防止数据消失,保证数据的安全。 例如:在数据库容器中,数据表会生成一些数据。 如果我删除它,数据就会丢失。 为了保证数据不丢失,所以存在这个。
数据结构图
持久数据的解决方案
基于本地文件系统。 执行或运行时可以使用-v参数将宿主机的目录作为容器的数据卷。 这部分功能是基本的本地文件系统管理。 基于,支持第三方存储解决方案,如NAS、aws
类型
托管数据,由后台自动创建。
对于绑定安装,具体安装位置可由用户指定。
数据持久化
以官方镜像mysql文件为例。 它指定了当前容器中要备份的文件路径,但没有指定将其保存到宿主机的何处。
:将容器中的文件映射到本地主机硬盘
当我们使用运行时
当启动Mysql镜像容器时,容器会默认在主机上生成一个。 至于位置和名称可以通过以下命令查看
#查看所有volume docker volume ls #删除指定volume docker volume rm [volume name] #查看volume详细 docker volume inspect [volume name]
这时候我们把容器删除了,发现数据量还在,并且保留了下来。
这个时候我们就会感觉这个数据名的名字很长,很难理解。 我们可以通过 -v 指定生成的名称,如下命令运行 -d -v MYSQL:/var/lib/mysql --name mysql .7
-v
: 之前的参数为名称,: 后面的参数为要备份的文件目录(容器)。
这时候我们删除容器,数据量还在。 我们使用名为mysql的数据卷作为新容器的数据卷并覆盖它。
运行-d -v mysql:/var/lib/mysql --name .7
进入容器,使用mysql -uroot进入数据库,发现当前数据库数据与之前删除的容器中的数据库数据相同。
绑定数据持久化
与上面的数据不同,bind只能通过run -v启动,不能通过file启动。
容器运行时指定本地文件目录与容器内文件目录的映射关系。 通过此可以同步文件数据。 无论哪一方有修改,对方都会同步内容。
docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name nginx nginx
此时-v:前面的参数是本地文件路径,后面的参数是文件目录(容器)
值得注意的是,使用bind方法映射数据卷时,首次运行-v。 如果本地机器上的文件夹没有内容,而容器中的文件夹有内容,则本地文件夹会覆盖容器中的内容。 ,即原来有内容的容器也将没有内容。
以上就是本文的全部内容。 希望对大家的学习有所帮助。 也希望大家支持易速云。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。