dockers数据持久化使用绑定挂载(Bind Mounts)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【10月更文挑战第6天】

在使用Docker时,数据持久化是一个常见的需求。当容器停止或删除时,默认情况下容器中的数据会丢失。为了防止这种情况发生,并且能够将数据保存在宿主机上或者共享数据给其他容器,可以使用绑定挂载(Bind Mounts)。

绑定挂载允许你将宿主机文件系统的某个目录挂载到容器中。这样,即使容器停止或删除了,数据依然保留在宿主机上,因为它们实际上存储在宿主机文件系统的一个位置。

以下是使用绑定挂载的基本步骤:

  1. 选择宿主机上的目录

    • 首先,你需要在宿主机上创建一个目录,用于存放需要持久化的数据。例如,可以在/mnt/data创建一个目录。
  2. 运行容器并挂载目录

    • 使用docker run命令启动容器时,可以通过-v选项指定挂载点。格式为:-v <host-dir>:<container-dir>。这里<host-dir>是宿主机上的目录,而<container-dir>是容器内的目标目录。

    示例命令:

    docker run -d -v /mnt/data:/var/lib/mysql --name mysql-container mysql:latest
    

    这个命令会将宿主机的/mnt/data目录挂载到名为mysql-container的容器内的/var/lib/mysql目录。

  3. 管理数据

    • 数据写入容器内的挂载点时,实际上是在宿主机对应的目录中进行操作。这意味着你可以直接在宿主机上管理这些数据,比如备份或迁移。
  4. 注意事项

    • 如果要挂载的目录不存在,Docker会在宿主机上自动创建它。
    • 当容器运行时,宿主机和容器内挂载点的数据是同步的。任何一方对数据的修改都会影响另一方。
    • 当删除容器时,不会自动删除宿主机上的挂载目录及其内容。但如果删除包含该目录的卷,则可能会导致数据丢失。
    • 使用相对路径时,请确保Docker守护进程与你的终端在同一用户权限下运行,否则可能无法正确挂载目录。

通过使用绑定挂载,你可以简单地实现数据持久化,并且很容易地在不同的容器之间共享数据。但是,请注意,这种方式不适合于需要跨多个节点共享数据的情况,因为每个节点都需要有自己的挂载点。对于集群环境中的数据共享,可能需要考虑使用Docker卷(Volumes)或其他网络文件系统解决方案。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 Kubernetes 应用服务中间件
k8s 1.24.3版本使用nfs-provisioner4.0.0动态创建PV
k8s 1.24.3版本使用nfs-provisioner4.0.0动态创建PV
1466 0
|
2月前
|
Linux Docker Windows
docker中使用绑定挂载(Bind mounts)
【10月更文挑战第9天】
100 1
|
2月前
|
网络协议 RDMA
GlusterFS支持哪些挂载选项?
【10月更文挑战第1天】GlusterFS支持哪些挂载选项?
59 1
|
2月前
|
存储 应用服务中间件 nginx
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
|
4月前
|
关系型数据库 MySQL Docker
Docker - 数据卷挂载与目录挂载的区别
Docker中数据卷挂载与目录挂载的区别,包括它们的定义、使用场景和命令差异。
521 0
|
7月前
|
存储 Kubernetes 应用服务中间件
k8s-配置与存储-持久化存储-NFS 挂载、StorageClass 存储类 动态创建NFS-PV案例
k8s-配置与存储-持久化存储-NFS 挂载、StorageClass 存储类 动态创建NFS-PV案例
654 0
|
7月前
|
存储 运维 Kubernetes
K8S基于NFS来动态创建PV【亲测可用】
K8S基于NFS来动态创建PV【亲测可用】
483 2
|
7月前
|
消息中间件 Linux 开发工具
rabbitmq使用docker容器挂载宿主机配置文件时无法访问控制台
rabbitmq使用docker容器挂载宿主机配置文件时无法访问控制台
|
7月前
|
存储 缓存 安全
|
网络协议 安全
NFS系统挂载配置解析
NFS系统挂载配置解析
209 0

相关实验场景

更多