四. Docker 数据持久化

当你基于一个镜像启动一个容器,镜像里面所有层都将被以read-only方式被mounted,接下来,一个 read-write曾会在容器的最上层被创建 。


图片.png

Volumes 好比容器的虚拟磁盘,当你往里面写东西,你实际是在往host机器的磁盘或者其他存储平台的持久化位置写东西, Volumes 可以被多个container共享。

1. 实验一个Volume

1.1 新建一个dockerfile并build它

图片.png

图片.png

1.2 运行一个 interactive container

图片.png

1.3 从交互环境退出后再查看

图片.png

说明,find 工具 参数: "-name" 按照文件名查找文件,如果你需要对大小写敏感,可以使用“-iname”代替

1.4 重新启动一个容器

图片.png
图片.png

1.5 通过-v让Volume映射到host的指定位置

图片.png

2. MongoDB作数据备份案例

Data volumes exist outside of a container, which means any data written to them persists even when the container isn’t running or has been removed. That also means a container’s volumes can be shared between containers from the same image or different images, which is useful for scenarios such as backing up databases.

2.1 运行Mongo容器

~$ sudo docker container run -d --name mongo mongo

下图是当本机没有mongo镜像时候的显示信息
图片.png

2.2 新运行一个容器并备份数据库文件

图片.png

我们可以看看是否备份成功:
首先查找到host映射位置:

yay@10049605-ThinkPad-T470-W10DG:~$ sudo docker container inspect mongo

图片.png

然后查看这个目录是否有我们刚刚tar生成的东西:


图片.png

你可能感兴趣的:(四. Docker 数据持久化)