我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker进行数据挂载的模式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker进行数据挂载的模式有哪些

今天小编给大家分享一下docker进行数据挂载的模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

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

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

一、Tmpfs挂载

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

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

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

docker进行数据挂载的模式有哪些

所以将/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>    <h2>Bind mounts</h2></body></html>

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

docker进行数据挂载的模式有哪些

四、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进行数据挂载的模式有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker进行数据挂载的模式有哪些

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

下载Word文档

猜你喜欢

docker进行数据挂载的模式有哪些

今天小编给大家分享一下docker进行数据挂载的模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Docker 提供了
2023-06-30

Docker实现挂载的方式有哪些

这篇文章主要讲解了“Docker实现挂载的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker实现挂载的方式有哪些”吧!Docker实现挂载的方式在介绍VOLUME指令之前,
2023-07-05

docker的网络模式有哪些

Docker的网络模式有以下几种:bridge(默认):Docker在主机上创建一个虚拟的网络桥接接口,容器加入到这个网络中后可以通过桥接接口与主机以及其他容器进行通信。host:容器直接使用主机的网络,容器内的网络与主机共享,可以直接使
docker的网络模式有哪些
2023-10-30

Pandas进行数据编码的方式有哪些

这篇文章主要介绍“Pandas进行数据编码的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pandas进行数据编码的方式有哪些”文章能帮助大家解决问题。最近在知乎上看到这样一个问题为了方便
2023-06-30

Tomcat的运行模式有哪些

Tomcat的运行模式有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。tomcat的运行模式有3种一、bio(blocking I/O)即阻塞式I/O操作,表示Tomcat
2023-05-31

hadoop可以运行的模式有哪些

Hadoop可以运行的模式包括以下几种:单机模式(Standalone Mode):在单台机器上运行Hadoop,适合开发和测试。伪分布式模式(Pseudo-Distributed Mode):在一台机器上模拟多台机器运行Hadoop,用于
hadoop可以运行的模式有哪些
2024-03-13

服务器的服务进程模式有哪些

并发服务器模式:服务器能够同时处理多个客户端请求,通过多线程、多进程或者异步处理方式实现并发处理。迭代服务器模式:服务器在处理完一个客户端请求之后,再处理下一个客户端请求,按照顺序逐个处理客户端请求。线程池服务器模式:服务器使用线程池管
服务器的服务进程模式有哪些
2024-04-26

linux进入紧急模式的原因有哪些

Linux进入紧急模式的原因有以下几种:1. 文件系统错误:当Linux系统的文件系统出现错误时,可能会导致系统无法正常启动。例如,文件系统损坏、磁盘空间不足、文件系统权限问题等。2. 硬件故障:当Linux系统的硬件设备出现故障时,可能会
2023-08-30

负载均衡有哪些常见的部署模式

负载均衡有以下常见的部署模式:集中式负载均衡:在一个独立的设备上进行负载均衡,将请求分发到多个后端服务器上。分布式负载均衡:将负载均衡功能分布到多个设备上,通过协调这些设备来实现请求的分发和负载均衡。客户端负载均衡:在客户端进行负载均衡,客
负载均衡有哪些常见的部署模式
2024-04-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录