Docker数据持久化

Docker数据持久化解决了容器重启或删除时数据丢失的问题,通过数据卷和bindmount实现。数据卷在宿主机的特定路径创建文件夹,不受容器生命周期影响,方便数据备份和恢复。bindmount则是直接挂载宿主机文件或目录到容器,适合已有数据结构的共享。
摘要由CSDN通过智能技术生成

Docker数据持久化

docker数据持久化所解决的问题:

  1. 数据持久性:Docker容器默认是临时的,当容器被删除或重新创建时,容器内部的数据也会丢失。通过数据持久化,可以将数据保存在容器外部,使其在容器的生命周期内保持不变。这样,即使容器被删除或重新创建,数据也不会丢失
  2. 应用程序升级和迁移:当应用程序需要升级或迁移到新的环境时,数据持久化非常有用。通过将数据存储在持久化存储介质(如主机目录或数据卷)中,可以确保在应用程序升级或迁移过程中数据的连续性。应用程序容器可以被重新创建或迁移到其他主机,而数据仍然可以访问和使用。
  3. 多容器共享数据:在某些情况下,多个容器可能需要共享数据。通过使用数据卷或挂载主机目录,可以将数据卷挂载到多个容器中,使它们可以访问相同的数据。这在微服务架构或容器化的分布式应用程序中特别有用。
  4. 数据备份和恢复:通过将数据持久化到外部存储介质,可以方便地进行数据备份。可以通过备份主机目录或数据卷来保护数据,以防止数据丢失或损坏。在需要时,可以使用备份进行数据恢复,确保数据的完整性和可用性。
  5. 持久化存储的共享和扩展:通过使用持久化存储解决方案,如分布式文件系统或云存储服务,可以实现容器间的数据共享和扩展。多个容器可以使用相同的数据存储来访问和修改数据,从而提供协作和伸缩性。

Docker进行持久化的方式

docker可以在执行run的时候,通过-v和–mount命令进行挂载,这两个命令效果一样

Volumes 数据卷

数据卷是在宿主机的docker工作路径(/var/lib/docker/volumes)创建一个文件夹,来存放数据的。通过使用数据卷,可以将容器中的数据持久化保存在主机上,不受容器的生命周期影响。

创建数据卷

创建了一个名为Dockerdata的数据卷

docker volume create Dockerdata

Docker在创建volume的时候会在宿主机/var/lib/docker/volume/中创建一个以volume ID为名的目录,并将volume中的内容存储在名为_data的目录下。

查看所有数据卷
docker volume ls
查看数据卷信息
docker volume inspect Dockerdata
删除数据卷
docker volume rm Dockerdata
删除容器时删除相关连的数据卷
docker rm -v dockerID

如果没有-v参数,删除容器并不会删除绑定的数据卷

删除没有使用的数据卷
docker volume prune
挂载
docker run -d -v Dockerdata:/data busybox
docker run -d -v /data busybox     #挂载一个随机名字的volume

其实不提前create也可以,因为如何Dockerdata卷不存在的话,会自动创建,也就意味着,一个容器使用volume进行挂载卷,上次这个容器挂载的卷如果存在,仍然还可以继续使用。

bind mount

Bind mounts模式和Volumes非常相似,不同点在于Bind mounts模式是将宿主机上的任意文件或文件夹挂载到容器,而Volumes本质上是将Docker服务管理的一块区域(默认是 /var/lib/docker/volumes 下的文件夹)挂载到容器。

挂载方式

挂载目录

docker run -d -v /src/webapp:/opt/webapp

将本地目录的webapp内容挂载到容器中的opt/webapp中,本地目录必须时绝对路径,如果目录不存在则会创建。

挂载文件

docker run -d -v /home/index.php:/var/www/html/index.php 

将宿主机的index.php挂载到容器中去,但是容器启动之后,再次修改宿主机的文件,容器里面竟然没有变化,这个很离谱,不知道为什么,网上也没找到详细的解释,知道的大佬可以在评论下面留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值