当前位置:网站首页>Docker-持久化数据库(数据卷)
Docker-持久化数据库(数据卷)
2022-08-08 11:58:00 【雨云21】
每次启动容器时,前面添加的数据都会消失
启动getting-started容器镜像,浏览器访问,然后向其中添加几个item。我们刷新一下页面,或是换一个浏览器访问,上面添加的item都还在
但如果将容器停掉,然后重新启动一个容器,再用浏览器访问,发现里面新增的item都不见了
容器的文件系统
当一个容器运行时,它使用镜像中的各个层作为其文件系统。每个容器还有自己的“暂存空间”来创建/更新/删除文件。任何更改都不会在另一个容器中看到,即使它们使用相同的镜像。
数据卷
每个容器每次启动都是从镜像定义开始的。虽然容器可以创建、更新和删除文件,但当容器被移除并且所有数据更改都与该容器隔离时,这些数据会丢失。
数据卷提供了将容器的特定文件系统路径连接回主机的能力。如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。
数据卷
有两种类型:命名卷named volumes
、绑定挂载bind mounts
数据卷
是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
数据卷
可以在容器之间共享和重用数据卷
的修改会立即生效数据卷
的修改,不会影响镜像数据卷
默认会一直存在,即使容器被删除
持久化数据
代办事项项目的数据是存储在容器文件系统中的SQLite 数据库中的,目录:/etc/todos/todo.db
由于数据库是单个文件,如果我们可以将该文件持久保存在主机上,并使其可用于下一个容器,它应该能够从最后一个停止的地方继续。通过创建一个数据卷
并将其附加(通常称为“挂载”)到存储数据的目录,我们可以持久化数据。当我们的容器写入todo.db
文件时,它将被持久化到数据卷
中的主机。
1、创建数据卷。
$ docker volume create todo-db
2、再次停止并删除待办事项容器,因为它仍在运行而且没有使用数据卷
。
docker ps
docker rm -f <id>
3、启动待办事项项目容器,用-v
指定数据卷
挂载。我们将使用这个命名卷
并将其挂载到/etc/todos
,这将捕获在该路径创建的所有文件。
也可以在一次docker run
命令中多次使用-v
标识挂载多个数据卷
如果没有运行docker volume create
命令,而是直接使用下面的命令,docker会为我们自动创建一个
$ docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started
4、容器启动后,打开应用程序并将一些item添加到待办事项列表中。
5、停止并删除待办事项项目的容器。
docker ps
docker rm -f <id>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGTtfRFI-1659341392848)(https://raw.githubusercontent.com/yuyun-21/uplod-images/hyh/images/Flowable/image-20220617115819573.png)]
6、使用上面的相同命令启动一个新容器。
$ docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started
7、打开浏览器访问,应该会在列表中看到前面添加的事项
查看所有的 数据卷
docker volume ls
查看指定数据卷
docker volume inspect todo-db
Mountpoint
是存储数据的磁盘上的实际位置- 大多数设备需要具有 root 访问权限才能从主机访问此目录
边栏推荐
猜你喜欢
leetcode-636:函数的独占时间
Mysql索引优化实战
论文阅读《Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras》
Classificition Loss in target detection
Mobile adaptation method of vw/vh - vw/vh instance - analog B stand mobile home page - get style tutorial video
关于那些我们都听过的营销工具—优惠券
史上最全JVM性能调优:线程+子系统+类加载+内存分配+垃圾回收
自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)
如何使用shell来进行版本管理-以iptables为例
五面阿里巴巴拿offer后定级P6:分享自己的面试经历
随机推荐
[Horizon Rising Sun X3 Trial Experience] WIFI connection, SSH login, TogetherROS installation (section 2)
是不是只有字符串的数字水印能一直保留并且不影响计算,其他类型的字段导入数据库之后水印就会丢失?
分分钟快速定制您的专属个性化软件应用——BizTool自动化工具简介
ReentrantLock原理,ReentrantLock和synchronized区别
MeterSphere--开源持续测试平台
手绘地图制作的关键点之“图层覆盖”
Acwing3452. 进制转换
一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
结点的查找
为你的网站加上live2d的动态小挂件,博君一晒
逐步手撕轮播图3(分步教程)
E121: Unable to open and write file solution when vim /etc/profile is written
一些常见的web小功能
Combining "xPlus" to discuss the innovation and change of software architecture
phpstyle安装管理mysql
EZVIZ and Xiaomi compete against smart cameras
字节也开始缩招了...
Mobile adaptation method of vw/vh - vw/vh instance - analog B stand mobile home page - get style tutorial video
深度学习网络结构图绘制工具及方法
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!