【Docker】docker的数据持久化

在 Docker 中,容器的文件系统是临时的。如果容器被删除或重新创建,所有未保存的数据都会丢失。为了解决这个问题,我们可以使用以下两种方式来持久化数据:

方式一: 使用Bind Mounts实现数据持久化

Bind Mounts 允许你将宿主机文件系统中的目录或文件挂载到容器内的某个目录。这种方式非常直接,适合在开发和测试环境中使用。

案例:运行一个Nginx 容器,并将宿主机上的 html 目录挂载到容器内的 /usr/share/nginx/html 目录。

# 宿主机创建一个目录,用于存放数据
mkdir /root/mdynginx/html/

# 创建容器,指定挂载路径
docker run -d -p 80 --name mdynginx -v /root/mdynginx/html/:/usr/share/nginx/html/ nginx:1.26

方式二: 使用Volume实现数据持久化

Volumes 是 Docker 推荐的持久化数据方式,因为它们独立于宿主机的文件系统,并由 Docker 管理,适合生产环境使用。

  • 1,创建一个Volume,命名为mdyvolume
docker volume create mdyvolume

# 查看volume列表
docker volume ls
  • 2,运行容器,并使用
docker run -d -p 80 --name mdynginx2 -v mdyvolume:/usr/share/nginx/html nginx:1.26
  • 3,查看volume中的数据
docker volume inspect mdyvolume

[
    {
        "CreatedAt": "2024-08-18T09:53:46+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/mdyvolume/_data",  # 该路径为数据持久存储位置
        "Name": "mdyvolume",
        "Options": null,
        "Scope": "local"
    }
]

以上两种方式存储,删除容器后,再次创建容器,数据依然存在,做到持久化!

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
发出的红包

打赏作者

一直奔跑在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值