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部署influxdb与 mongo的常用命令

    使用docker部署influxdb与 mongo的常用命令

    这篇文章主要介绍了使用docker部署influxdb与 mongo的常用命令,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Docker的进程和Cgroup概念详解

    Docker的进程和Cgroup概念详解

    文章主要介绍了容器内的进程组织和关系,包括containerd-shim和容器内1号进程的角色和特点,以及信号处理机制,同时,文章还讨论了Cgroup在Linux系统中用于资源管理和控制的机制,包括CFS调度算法和Kubernetes中的资源管理,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Docker下安装部署Clickhouse及其远程访问方式

    Docker下安装部署Clickhouse及其远程访问方式

    文章介绍了如何远程拉取和安装ClickHouse Docker镜像,配置和部署ClickHouse容器,并通过DataGrip远程访问ClickHouse
    2024-11-11
  • docker镜像、容器消失解决办法步骤记录

    docker镜像、容器消失解决办法步骤记录

    在工作中,Docker服务突然停止,镜像和容器消失是极为头疼的问题,解决方案分为检查存储空间和更换Docker安装目录两种,文中将两种方法介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Docker如何使用link建立容器之间的连接

    Docker如何使用link建立容器之间的连接

    本篇文章主要介绍了Docker如何使用link建立容器之间的连接,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Docker容器安装Vim编辑器的方法

    Docker容器安装Vim编辑器的方法

    Docker容器是一种轻量级、可移植的应用程序打包解决方案,在本文中,我们将讨论如何在Docker容器中安装Vim编辑器,为容器增添一个功能强大的文本编辑器,感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • linux 详解useradd 命令基本用法

    linux 详解useradd 命令基本用法

    这篇文章主要介绍了linux 详解useradd 命令基本用法的相关资料,需要的朋友可以参考下
    2017-01-01
  • Docker可视化管理工具DockerUI的使用

    Docker可视化管理工具DockerUI的使用

    这篇文章主要介绍了Docker可视化管理工具DockerUI的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Navicat 连接服务器端中的docker数据库的方法

    Navicat 连接服务器端中的docker数据库的方法

    这篇文章主要介绍了Navicat 连接服务器端中的docker数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 使用Docker+jenkins+python3环境搭建超详细教程

    使用Docker+jenkins+python3环境搭建超详细教程

    这篇文章主要介绍了使用Docker+jenkins+python3环境搭建超详细教程,本文通过多种方法结合示例代码给大家详细介绍,需要的朋友可以参考下
    2021-07-07

最新评论