docker 映射目录后文件丢失_docker系列篇:浅谈docker的中数据卷

Volume数据卷的由来:

Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。

简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。

特点:

one、数据卷可以在容器间共享和重用数据。

two、数据卷可以在宿主和容器间共享数据。

three、数据卷数据可以直接修改。

four、数据卷是持续性的,直到没有容器使用它们。

等等。

补充:

容器在运行期间产生的数据是不会写在镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据。

关于Docker数据持久化:

one、Docker提供数据卷或者数据容器卷。

two、通过commit提交一个新的镜像来保存产生的数据。

1、创建数据卷

1.1、在家目录Dokcer下创建目录volume/data

mkdir volume/data -p

c6ab17f1ce63ec659627f967f4cfce22.png

以centos的image为例:

5ba675f84283c2876a093a4a9b0279ce.png

1.2、启动容器

docker run -it -v /home/odysee/Docker/volume/data centos bash

-it:

-i: 以交互模式运行容器,通常与-t同时使用。

-t: 为容器重新分配一个伪输入终端,通常与-i同时使用。

/home/odysee/Docker/volume/data:容器会自动创建该目录

e0298b0b18b1d8438ed90765a20dcd3f.png

1.3、在容器内data下touch一个文件

echo 'call me volume!' > volFile

a453b258dcab27770a84363062183026.png

1.4、在查看宿主机查看数据卷对应的目录

新开一个终端

docker ps:查看运行的容器。

docker inspect containeri

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值