iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >详解docker进行数据挂载的三种模式
  • 764
分享到

详解docker进行数据挂载的三种模式

2024-04-02 19:04:59 764人浏览 独家记忆
摘要

目录一、Tmpfs挂载二、Bind mounts三、Bind mounts-测试是否正确挂载数据卷四、Bind mounts-验证只读挂载Docker 提供了三种方式将数据从宿主机挂

Docker 提供了三种方式将数据从宿主机挂载到 Docker容器中: volumes、bind mounts、tmpfs 。

Volumes是在宿主机文件系统的一个路径,默认情况下统一的父路径是 /var/lib/docker/volumes/,非 Docker 进程不能修改这个路径下面的文件,所以说 Volumes 是容器数据持久存储数据最安全的一种方式。Bind mounts 可以将文件存储在宿主机文件系统的任何路径,所以非 Docker进程也可以对其进行修改,存在潜在的安全风险。Tmpfs 只存储在宿主机的内存中,不会写入到宿主机文件系统中,不会持久化存储。

本文我们先来介绍其中的两种:Bind mounts与Tmpfs。Volumes 由于相对重要,会单独起一个文章进行说明。

一、Tmpfs挂载

需要再次强调的是tmpfs 挂载是临时的,只存留在容器宿主机的内存中。当容器停止时,tmpfs 挂载文件路径将被删除,在那里写入的文件不会被持久化。

docker run -d \
 -p 8888:8888 \
 --tmpfs /tmp \
 --name spboot  zimug/docker-test:1

学过SpringBoot的同学可能都知道,springBoot项目启动之后会在/tmp目录下面解压出Tomcat容器,提供WEB服务。

所以将/tmp目录使用tmpfs方式挂载到宿主机的内存中,不仅场景合适,也会提升springboot项目的运行效率(内存操作)。

二、Bind mounts

其实Bind Mounts挂载数据卷的方式也是大家最常见的一种方式,比如使用-v参数绑定数据卷,其中/root/Nginx/html是我们任意指定的一个宿主机磁盘文件目录,这种情况下就是Bind mounts方式挂载数据卷。

-v /root/nginx/html:/usr/share/nginx/html/ 

除了使用-v参数绑定的方式,还可以使用--mount参数绑定的方式实现Bind mounts数据卷挂载。在--mount参数绑定的方式之前,我们先创建一个宿主机文件路径mkdir -p /root/nginx/html用于做实验 。

docker run -d --name bind-mount-nginx \
  -p 80:80 \
  --mount type=bind,source=/root/nginx/html,target=/usr/share/nginx/html/,readonly \
  nginx:latest

--mount 以键值对的方式传参,比-v提供了更多的选项

  • type=bind表示以Bind mounts方式挂载数据卷
  • source=/root/nginx/html表示宿主机的文件路径
  • target=/usr/share/nginx/html/表示容器的文件路径,宿主机source文件路径挂载到容器的target路径readonly配置参数,表示文件路径采用只读的方式挂载

三、Bind mounts-测试是否正确挂载数据卷

在宿主机 /root/nginx/html目录下新建一个index.html,文件内容如下

<!DOCTYPE html>
<html>
<body>
    <h1>Bind mounts</h1>
</body>
</html>

访问容器宿主机服务器80端口得到如下的响应结果,证明数据卷挂载成功了。

四、Bind mounts-验证只读挂载

--mount中加入一个readonly配置参数,表示文件路径采用只读的方式挂载。即:该路径下的文件可以在宿主机上进行修改,但是容器内的应用程序不能修改该文件。

--mount type=bind,source=/root/nginx/html,target=/usr/share/nginx/html/,readonly

可以通过docker inspect <容器ID或容器名称> 查看数据卷的挂载结果,如下

"Mounts": [
    {
        "Type": "bind",
        "Source": "/root/nginx/html",
        "Destination": "/usr/share/nginx/html",
        "Mode": "",
        "RW": false,
        "Propagation": "rprivate"
    }
],

  • 数据卷挂载类型是bind(mount bind)
  • 宿主机源路径/root/nginx/html,容器挂载目标路径/usr/share/nginx/html
  • "RW": false表示只读模式,路径内文件不能被容器内程序修改

大家可以通过docker exec -it <容器ID或容器名称> /bin/bash 进入容器内部尝试修改/usr/share/nginx/html路径下的文件,看看能不能修改,相信经过你的验证答案一定是否定的。

到此这篇关于docker进行数据挂载的三种模式的文章就介绍到这了,更多相关docker数据挂载内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解docker进行数据挂载的三种模式

本文链接: https://www.lsjlt.com/news/149889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解docker进行数据挂载的三种模式
    目录一、Tmpfs挂载二、Bind mounts三、Bind mounts-测试是否正确挂载数据卷四、Bind mounts-验证只读挂载Docker 提供了三种方式将数据从宿主机挂...
    99+
    2024-04-02
  • docker进行数据挂载的模式有哪些
    今天小编给大家分享一下docker进行数据挂载的模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Docker 提供了...
    99+
    2023-06-30
  • Docker 实现挂载的三种方式
    一.为什么有挂载 容器中运行的应用,有可能会产生数据,如果将数据直接存储到容器中,如果删除容器时,容器中的数据会一起被删除,例如: 如果运行的是数据库容器,数据库容器直接保存的数据文件,删除容器时,容易导致数据丢失 为了防止数据丢失,可以把...
    99+
    2023-09-05
    docker 容器 运维 java
  • Docker之实现挂载的三种方式汇总
    目录Docker实现挂载的方式一、通过docker run命令二、通过dockerfile创建挂载点三、容器共享卷(挂载点)四、最佳实践:数据容器关于Docker中挂载的解释总结Do...
    99+
    2023-02-25
    Docker挂载 Docker实现挂载 Docker挂载方式
  • docker容器间进行数据共享的三种实现方式
    目录一、Bind Mounts方式共享数据二、Volumes方式数据共享三、Volume container(数据卷容器)方式3.1.创建数据卷容器3.2.使用数据卷容器我们本节为大...
    99+
    2024-04-02
  • 详解Python进行数据相关性分析的三种方式
    目录相关性实现NumPy 相关性计算SciPy 相关性计算Pandas 相关性计算线性相关实现线性回归:SciPy 实现等级相关排名:SciPy 实现等级相关性:NumPy 和 Sc...
    99+
    2024-04-02
  • 详解Springboot下载Excel的三种方式
    汇总一下浏览器下载和代码本地下载实现的3种方式。 (其实一般都是在代码生成excel,然后上传到oss,然后传链接给前台,但是我好像没有实现过直接点击就能在浏览器下载的功能,所以这次...
    99+
    2024-04-02
  • 详解mysql数据去重的三种方式
    目录一、背景二、数据去重三种方法使用1.​通过MySQL DISTINCT:去重(过滤重复数据)2.group by3.row_number窗口函数三、总结一、背景 最近在和系统模块...
    99+
    2024-04-02
  • Pandas保存csv数据的三种方式详解
    目录方法一方法二方法三补充方法一 import os import pandas as pd path = 'data/train/' img_label_list=[] test...
    99+
    2024-04-02
  • Oracle 数据库启动过程的三阶段、停库四种模式详解
    目录数据库的启动过程(3个台阶)1.nomount2.mount3.open数据库的启动过程(3个台阶) 1.nomount shutdown --> nomount startup nomount selec&#...
    99+
    2022-11-21
    Oracle 数据库启动 Oracle 数据库停库
  • Python进行数据相关性分析的三种方式是什么
    本文小编为大家详细介绍“Python进行数据相关性分析的三种方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python进行数据相关性分析的三种方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。相...
    99+
    2023-06-30
  • 一文详解PHP连接MySQL数据库的三种方式
    目录1.MySQL扩展2.mysqli扩展3.PDO扩展知识点补充PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对...
    99+
    2024-04-02
  • Tensorflow 2.4加载处理图片的三种方式详解
    目录前言数据准备使用内置函数读取并处理磁盘数据自定义方式读取和处理磁盘数据从网络上下载数据前言 本文通过使用 cpu 版本的 tensorflow 2.4 ,介绍三种方式进行加载和预...
    99+
    2022-11-21
    Tensorflow2.4 加载处理图片 Tensorflow 加载
  • 详解redis的三种特殊数据类型
    14天学习训练营导师课程: 郑为中《Vue和SpringBoot打造假日旅社管理系统》 努力是为了不平庸~ 学习有些时候是枯燥的,但收获的快乐是加倍的,欢迎记录下你的那些努力时刻(学习知识点/题解/项目实操/遇到的bug/等等),在分享的同...
    99+
    2023-08-20
    redis java 数据库
  • 详解el-table表头文字换行的三种方式
    目录问题描述效果图三种方式的代码总结问题描述 表格中的表头一般都是不换行的,不过有时候在某些业务场景中,需要让表头的文字换行展示一下,我们先看一下效果图 效果图 三种方式的代码...
    99+
    2024-04-02
  • js对url进行编码解码的三种方式总结
    目录第一种:escape 和 unescape第二种:encodeURI 和 decodeURI第三种:encodeURIComponent 和 decodeURIComponent...
    99+
    2023-02-14
    js url编码解码 url编码和解码 js转码和解码
  • 如何进行数据库三大范式的分析
    这篇文章将为大家详细讲解有关如何进行数据库三大范式的分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一: 引言     &n...
    99+
    2024-04-02
  • 数据库系统结构详解之三级模式结构
    目录一、从数据库管理系统角度看1.模式2.外模式3.内模式4.模式之间的映射(1)外模式/模式之间的映射(2)模式/内模式之间的映射二、从构件角度看,数据库系统由硬件、软件等部分组成...
    99+
    2024-04-02
  • 阿里云ECS实例的Linux挂载数据盘详解
    阿里云ECS实例是阿里云提供的一种云计算服务,用户可以根据自己的需求选择不同配置的ECS实例。在使用ECS实例的过程中,数据盘的挂载是非常重要的一环。本文将详细介绍阿里云ECS实例的Linux挂载数据盘的方法。 一、阿里云ECS实例的Lin...
    99+
    2023-11-13
    阿里 详解 实例
  • Pandas进行数据编码的十种方式总结
    目录数值型数据自定义函数 + 循环遍历自定义函数 + map自定义函数 + apply使用 pd.cut使用 sklearn 二值化文本型数据使用 replace使用map...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作