Docker数据存储之Bind mounts详解

 更新时间:2019年02月21日 11:05:57   作者:cheergoivan  
今天小编就为大家分享一篇关于Docker数据存储之Bind mounts详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

阅读本文前,希望你已经对Volumes有了初步的了解,具体可以参考这篇文章:

Docker数据存储之Volumes详解

默认容器的数据的读写发生在容器的存储层,当容器被删除时其上的数据将会丢失。所以我们应该尽量保证容器存储层不发生写操作,为了实现数据的持久化存储我们需要选择一种方案来保存数据,当前有以下几种方式:

  • Volumes
  • Bind mounts
  • tmpfs mounts

下图展示了这三种技术:

Bind mounts

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

Bind mounts的使用和Volumes类似,也是通过-v--mount参数将宿主机文件挂载容器中。下面是一个例子:

使用--mount参数时,需要指定type=bind

$ docker run -d \
 --name=nginxtest \
 --mount type=bind,source=/usr/local/web,destination=/usr/share/nginx/html \
 nginx:latest

上面的例子将宿主机上的/usr/local/web文件夹挂载到容器中的/usr/share/nginx/html文件夹。

或者使用-v参数:

$ docker run -d \
 --name=nginxtest \
 -v /usr/local/web:/usr/share/nginx/html \
 nginx:latest

挂载成功后,容器从/usr/share/nginx/html目录下读取或写入数据,实际上都是从宿主机的 /usr/local/web目录中读取或写入数据。因此Volumes或Bind mounts也可以看作是容器和宿主机共享文件的一种方式。

如果你使用Bind mounts挂载宿主机目录到一个容器中的非空目录,那么此容器中的非空目录中的文件会被隐藏,容器访问这个目录时能够访问到的文件均来自于宿主机目录。这也是Bind mounts模式和Volumes模式最大的行为上的不同。

Bind mounts使用场景

请参考这篇文章:Docker数据存储总结

参考文章

https://docs.docker.com/storage/bind-mounts/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • docker中使用mysql数据库详解(在局域网访问)

    docker中使用mysql数据库详解(在局域网访问)

    这篇文章主要给大家介绍了在docker中使用mysql数据库,在局域网访问的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Docker安装RabbitMQ AMQP协议及重要角色

    Docker安装RabbitMQ AMQP协议及重要角色

    这篇文章主要为大家介绍了Docker安装RabbitMQ AMQP协议和主要角色详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 使用 Docker Compose 构建复杂的多容器 App的方法

    使用 Docker Compose 构建复杂的多容器 App的方法

    Docker Compose 工具相当于 C/C++ 的 make 工具,使用 make 需要 Makefile,所有的编译链接设置都在Makefile 中指定,不需要为了运行程序而每次都在终端手动输入长串的指令,这篇文章主要介绍了使用 Docker Compose 构建复杂的多容器 App,需要的朋友可以参考下
    2022-04-04
  • docker 限制容器对CPU的使用

    docker 限制容器对CPU的使用

    本篇文章主要介绍了docker 限制容器对CPU的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 在Docker容器中不需要运行sshd的原因浅析

    在Docker容器中不需要运行sshd的原因浅析

    在一个容器中运行SSH服务器,这真的是一个错误(大写字母W)吗?老实说,没那么严重。当你不去访问Docker主机的时候,这样做甚至是极其方便的,但是这仍然需要在容器中取得一个shell
    2016-11-11
  • docker 移除掉运行不正常的container操作

    docker 移除掉运行不正常的container操作

    这篇文章主要介绍了docker 移除掉运行不正常的container操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker 特性与原理详细介绍与解析

    Docker 特性与原理详细介绍与解析

    这篇文章主要介绍了Docker 特性与原理的相关资料,大家在了解基本命令和基本知识后,来看下原理性的通信,需要的朋友可以参考下
    2016-10-10
  • 使用Docker创建FTP服务器的过程解析

    使用Docker创建FTP服务器的过程解析

    这篇文章主要介绍了使用Docker创建FTP服务器的过程解析,使用 Docker 搭建 FTP 服务,不仅十分简单,而且可以对宿主机有一定的隔离,对Docker创建FTP服务器的过程感兴趣的朋友一起看看吧
    2022-04-04
  • 在IntelliJ IDEA中使用Docker的开发指南

    在IntelliJ IDEA中使用Docker的开发指南

    这篇文章主要给大家介绍了在IntelliJ IDEA中使用Docker开发指南,文中通过图文介绍的非常详细,对我们的使用Docker有一定的帮助,需要的朋友可以参考下
    2023-09-09
  • docker创建mongodb容器存储数据步骤详解

    docker创建mongodb容器存储数据步骤详解

    这篇文章主要为大家介绍了docker创建mongodb容器存储数据步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论