docker es持久化_Docker 卷与持久化数据

# Docker的非持久化数据

每个Docker容器都有自己的非持久化存储。非持久化存储自动创建,从属于容器,生命周期与容器相同。这意味着删除容器也会删除全部非持久化数据。

# Docker的持久化数据

如果希望自己的容器数据保留下来(持久化),则需要将数据存储在卷上。卷与容器是解耦的,从而可以独立地创建并管理卷,并且卷并未与任意容器生命周期绑定。最终效果即用户可以删除一个关联了卷的容器,但是卷并不会被删除。

在容器中持久化数据的方式推荐采用卷。

总体来说,用户创建卷,然后创建容器,接着将卷挂载到容器上。卷会挂载到容器文件系统的某个目录之下,任何写到该目录下的内容都会写到卷中。即使容器被删除,卷与其上面的数据仍然存在。

创建卷docker volume create myvo1查看卷[root@iZuf6aodvgvqcl6w8xfpkfZ ~]# docker volume lsDRIVER    VOLUME NAMElocal     myvo1删除卷docker volume prune会删除未装入到某个容器或者服务的所有卷,所以谨慎使用docker volume rm挂在卷docker container run -dit --name  container1 --mount source=bizvol,target=/vol1 tomcat

# 在集群节点间共享数据

在swarm集群中,若存在多个服务,卷配置会被多个服务创建,但是卷中的数据不会共享。所以在集群多个节点共享数据还需要使用共享存储.比如NFS.

数据损坏问题:

基于图1,设想下面的场景:Node 1上的容器A在共享卷中更新了部分数据。但是为了快速返回,数据实际写入了本地缓存而不是卷中。此时,容器A认为数据已经更新。但是,在Node 1的容器A将缓存数据刷新并提交到卷前,Node 2的容器B更新了相同部分的数据,但是值不同,并且更新方式为直接写入卷中。此时,两个容器均认为自己已经将数据写入卷中,但实际上只有容器B写入了。容器A会在稍后将自己的缓存数据写入缓存,覆盖了Node 2的容器B所做的一些变更。但是Node2上的容器B对此一无所知。数据损坏就是这样发生的。

dea195525d5af452002729a0f1e17f17.png

上述数据损坏问题需要应用程序进行控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker中,数据持久化是指将容器中的数据保存到宿主机或者外部存储中,以保证数据持久性。Docker提供了多种数据持久化的方式,其中一种是使用Volume。Volume是Docker官方推荐的持久化方案,它可以将容器中的数据保存到宿主机文件系统中的某个目录。默认情况下,volume的存储空间来自于宿主机文件系统中的/var/lib/docker/volumes/目录[3]。 当我们在使用docker run命令创建容器时,可以使用-v参数来指定volume的名称和挂载路径。如果没有指定volume名称,Docker会默认创建一个匿名的volume。例如,可以使用如下命令创建一个名为container1的容器,并将宿主机目录/data挂载到容器内部: ``` docker run -it -v /data --name container1 busybox ``` 在宿主机上,我们可以通过/var/lib/docker/volumes/目录查找volume的实际存储路径。比如,如果我们创建了一个名为my-volume的volume,那么它在宿主机上的路径就是/var/lib/docker/volumes/my-volume/_data。 使用volume进行数据持久化可以确保容器在重新启动、迁移或升级时不会丢失数据。此外,volume还可以方便地与其他容器共享数据,实现数据的共享和协作。通过使用Docker数据持久化功能,我们可以更好地管理容器中的数据,并确保数据的安全性和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Hello Docker(七)——Docker数据持久化](https://blog.csdn.net/A642960662/article/details/123154025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值