Docker持久化方式-v和-volume的区别

news2024/9/19 10:34:59

docker数据的持久化一直用的是-v的方式,又叫Bind Mounts(目录绑定),偶然间发现还有一种通过卷轴来实现持久化的方式,翻了下资料,整理了一下两种方式使用的场景。

-v(Bind Mounts)

  • 用法:该用法比较常见,用于直接执行docker run命令时,做目录映射来实现持久化,一般不用于Dockerfile中,因为Dockerfile
    常常跨平台使用,而linux和windows目录结构不同。两个目录会实时同步
  • 适合:用于如nginx,php-fpm等服务,源数据宿主机自定义目录,适合源数据需要经常查看修改的服务
  • 说明:与volumes不同,bind mounts的方式会隐藏掉被挂载目录里面的内容(如果非空的话),比如容器目录内本来有数据,但宿主机目录为空,那么容器内也会空,所以配置文件映射需要提前准备好配置文件
docker -name nginx -v 宿主机/app/wwwroot:容器内/usr/share/nginx/html 

验证绑定:

docker inspect nginx

在这里插入图片描述

-volume

  • 用法:常用于Dockerfile文件中,如在其中声明volume /usr/share/zoninfo,那么在docker的安装目录volumes文件夹夹中会自动生成一个随机字符的文件夹来存储文件( /var/lib/docker/volumes/XXX),里面就是类似-v的映射文件。如不想随机字符,可以先声明一个卷,然后使用-v去挂载进去(就是将原宿主机目录改为卷名)
  • 适合:用于如mysql,mongodb等数据库类服务,源数据均位于docker根目录的volumes中,适合单纯备份数据,且不对源数据做查看修改,适合Dockerfile文件中,用户忘记-v则自动持久化到卷。

dockerfile声明匿名卷
在这里插入图片描述
声明自定义名卷

ocker volume create nginx-vol // 创建一个自定义容器卷
docker volume ls // 查看所有容器卷
docker volume inspect nginx-vol // 查看指定容器卷详情信息
docker stop edc-nginx // 暂停容器实例
docker rm edc-nginx // 移除容器实例
docker volume rm edc-nginx-vol // 删除自定义数据卷

应用自定义卷

# docker run -d -it --name=nginx -p 80:80 -v nginx-vol:/usr/share/nginx/html nginx

ps.映射这边有个bug,比如你将windows的www目录映射到nginx内,然后通过-v映射到php-fpm容器内,这时通过laravel等框架访问会巨慢,因为框架往往需要加载很多文件, 然因为windows和linux系统的关系加载会很慢(常见于虚拟机跑linux开发的时候),解决方法是容器内不要使用windows映射进来的目录,linux复制一份映射进去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Apache PDFBox 操作PDF文件

简介 Apache PDFBox库是一个用于处理PDF文档的开源Java工具。该项目允许创建新的PDF文档,操作现有PDF文档,并从PDF文档中提取内容。Apache PDFBox还包括几个命令行实用程序。 Apache PDFBox的主要功能如下: 从PDF文件中提取Unicode文本。将…

浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术

浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术 倾斜摄影超大场景的三维模型轻量化的质量关键技术主要包括: 1、保持数据精度。在进行轻量化处理时,必须确保数据的精度不受损失,否则会影响后续分析和应用方案。因此&#xff0…

接口测试不再难。这篇文章让你在5分钟内掌握接口自动化测试用例

目录 摘要: 一、背景 二、测试用例设计 三、测试脚本实现 四、最佳实践和技巧 总结 摘要: 本文介绍了接口自动化测试的重要性,并提供了一个简单的测试用例,涵盖了设计、条件、步骤和数据方面的考虑。通过使用Python中的req…

C/C++|物联网开发入门+项目实战|函数输入与输出|值传递|地址传递|连续空间的传递|嵌入式C语言高级|C语言函数的使用(1)-学习笔记(11)

文章目录 函数概述输入参数示例:值传递地址传递连续空间的传递 参考: 麦子学院-嵌入式C语言高级-C语言函数的使用 函数概述 一堆代码的集合,用一个标签去描述它 复用化,降低冗余度 标签 ------ 函数名 函数和数组都属于内存空间&#xff0c…

C语言system讲解

‘system’是C语言标准库中的一个函数,它的作用是对计算机系统进行操作,如创建文件夹,打开文件夹,清空屏幕等等,下面介绍一下常用的几个system命令 system函数原型 int system(const char* command); command是字符…

联发科的好日子结束,出货量暴跌,高通稳住阵脚并开始反击

在手机芯片市场连续3年时间顺风顺水之后,联发科终于迎来了高通的反击,特别是骁龙8G2的发布更是导致联发科在手机芯片市场的步步后退,推动了高通的反弹。 一、形势有利于高通 高通此前的骁龙8G1和骁龙888因出现发热问题,因此被誉为…

4. 线性表

4. 线性表 线性表是最基本、最简单、也是最常用的一种数据结构(逻辑结构)。一个线性表是n个具有相同特性的数据元素的有限序列。 前驱元素: 若A元素在B元素的前面,则称A为B的前驱元素 后继元素: 若B元素在A元素的后面,则称B为…

【翻译一下官方文档】之uniapp的界面弹框交互

大致分 3 种 普通提示loading框弹出选项 我个人理解就是大致知道有些什么,有啥功能,用到的时候,直接去用,不会的回来翻看文档 uni.showToast(OBJECT) 参数类型必填说明平台差异说明titleString是提示的内容,长度与…

C++ 多态详解

目录 多态的概念 定义 C直接支持多态条件 举例 回顾继承中遇到的问题 虚函数-虚函数指针-虚函数列表 虚函数 虚函数指针 虚函数列表 虚函数调用流程 虚函数于普通成员函数的区别 多态的概念 定义 多态:相同的行为方式导致了不同的行为结果,同一行…

【翻译一下官方文档】之uniapp的.sync修饰符

先用一个案例引出.sync修饰符 就是这样一个场景 父组件直接修改状态A当然没问题,但是子组件不能直接修改状态A,因为单向数据流限制 单向数据流 uni-app官网 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会…

AFP vs SMB vs NFS: 谁是最好的数据传输协议?

目录 SMB: 什么是SMB 协议? NFS: 什么是NFS协议? AFP: 设么是AFP协议? 如何选择合适的传输协议? 场景1: 大型企业 场景2: 小型网站设计公司 场景3: Linux软件开发组 可以在互联网上使用这些协议吗? AFP vs SMB vs NFS …

Docker的安装和镜像容器的基本操作

Docker的安装和镜像容器的基本操作 Docker 概述Docker与虚拟机的区别namespace的六项隔离Docker核心概念 安装 DockerDocker 镜像操作搜索镜像获取镜像镜像加速下载查看镜像信息查看下载的镜像文件信息查看下载到本地的所有镜像根据镜像的唯一标识 ID 号,获取镜像详…

基于struts + spring + hibernate的题库与试卷管理系统源码

3需求分析和设计方案 3.1 题库管理 3.1.1 试题管理需求分析 试题管理是整个系统非常核心的模块,它基于知识点模块、章节模块、课程模块、题型管理模块完成的基础上的。其中核心元素是试题,通过试题将题库中的各模块连接起来。 试题管理分为题库录入和…

MyBatisPlus学习

官网:https://mp.baomidou.com/ MyBatis Plus,简化 MyBatis ! 1.概述 需要的基础:把我的MyBatis、Spring、SpringMVC就可以学习这个了! 为什么要学习它呢?MyBatisPlus可以节省我们大量工作时间&#xff0…

随机模型预测控制(SMPC)——考虑概率约束(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 模型预测控制(MPC)又称为滚动时域控制和滚动时域控制,是一种强有力的工程应用技术。MPC的价…

springboot +flowable,处理 flowable 的用户和用户组(一)

一.简介 对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档:https://www.flowable.org/docs/userguide/index.html Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释:Flowable…

AIGC技术周报|清华、北邮新研究:让文生图AI更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 OpenAGI:当大模型遇见领域专家 “愿原力与大型…

ctfshow_WEB_web2 wp

前言 写这个是因为。。。我想摆烂,就去从最简单的题开始做了,想着交一道题是一道嘛,总之觉得这样做很适合欺骗安慰自己(逃 然后我发现我错了,我第二道题就做了好久还没做出来,甚至最后去点开了hint…… ps…

多数据源事务

使用 DATASOURCE 模式后,可能一个操作涉及到多个数据源。例如说:创建租户时,即需要操作主库,也需要操作租户库。 考虑到多数据的数据一致性,我们会采用事务的方式,而使用 Spring 事务时,会存在…

FTP服务--文件传输协议

FTP服务--文件传输协议 一、FTP服务端口二、FTP服务主动模式与被动模式三、FTP服务配置方法设置匿名用户访问的FTP服务(最大权限)配置文件中常见字段的含义 一、FTP服务端口 FTP服务器默认使用TCP协议的20,21端口与客户端进行通信 20端口:用于建立数据连接&#x…