当前位置: 首页 > news >正文

【Docker】挂载数据卷

一、Docker数据卷说明及操作

在Docker中挂载数据卷是一种将数据持久化保存的方法,以便容器之间或容器与主机之间共享数据。以下是如何在Docker中挂载数据卷的步骤:

1、创建数据卷

首先,您需要创建一个数据卷。可以使用以下命令创建一个数据卷:
docker volume create my_volume
这将创建一个名为 my_volume 的数据卷。您可以将其替换为您喜欢的任何名称。

2、运行容器并挂载数据卷

现在,您可以运行容器并将数据卷挂载到容器中。使用 -v--volume 选项来指定挂载数据卷的方式。例如:
# docker如何挂载数据卷 其中,--name 为指定容器名称
docker run -d -v wcs_client_db:/opt/work/jxv_wcs_client/jxvdb -p 8899:8899 --name wcs_client wcs_client:1.0
  • -d:以后台模式运行容器。
  • -v my_volume:/path/in/container:这里 my_volume 是数据卷的名称, /path/in/container 是容器内的路径,您可以根据需要更改它。
  • my_image:这是要运行的容器映像的名称。
这将在容器内的 /path/in/container 路径挂载数据卷 my_volume,容器内的数据将持久化保存在该数据卷中。

3、使用数据卷

容器运行后,您可以在容器内部或其他容器中使用挂载的数据卷。任何对挂载点的更改都会反映在数据卷上,因此数据可以在容器之间共享。

4、删除容器和数据卷

如果要删除容器,但保留数据卷,可以使用以下命令:
docker rm container_name
如果要删除容器和关联的数据卷,可以使用以下命令:
docker rm -v container_name
要删除不再使用的数据卷,可以使用以下命令:
docker volume rm my_volume
通过这些步骤,您可以在Docker中成功挂载数据卷,以便在容器之间共享和持久化数据。这对于将配置文件、数据库文件等持久化的应用程序非常有用。

二、补充说明

Docker 中挂载一个主机目录(使用 -v--volume 参数)和创建一个 Docker 数据卷之间有一些区别:

1、生命周期

  • 挂载主机目录:挂载主机目录是将主机上的一个目录直接挂载到容器中。这意味着挂载的目录的生命周期与主机上的目录完全一致。如果您删除主机上的目录,它将同时从容器中消失,反之亦然。
  • 创建 Docker 数据卷:Docker 数据卷是独立于容器和主机的 Docker 服务的一部分,因此其生命周期不受容器的启动和停止影响。数据卷的生命周期独立于容器和主机,这意味着即使删除了容器,数据卷仍然存在,可以被其他容器挂载和访问。数据卷的生命周期持久且独立。

2、管理

  • 挂载主机目录:挂载主机目录通常更容易管理,因为您可以直接在主机上操作和查看这些文件,对文件的更改也直接反映在容器中。
  • 创建 Docker 数据卷:数据卷需要更多的 Docker 命令来创建、删除和管理,它们通常更适合在多个容器之间共享数据,或者需要数据持久性的情况。

3、跨主机挂载

  • 挂载主机目录:如果您需要在多台 Docker 主机之间共享数据,挂载主机目录可能会更复杂,因为要确保目录在每台主机上都存在且保持同步。
  • 创建 Docker 数据卷:Docker 数据卷更容易跨主机挂载,因为它们是 Docker 服务的一部分,可以在多台主机之间复制和共享。
综上所述,选择挂载主机目录还是创建 Docker 数据卷取决于您的需求。如果您需要持久的、独立于容器的数据存储,或者希望在多个容器之间共享数据,那么创建 Docker 数据卷可能更合适。如果只是需要容器和主机之间的临时数据共享,挂载主机目录可能更方便。

三、使用场景说明

        案例:如果您安装的是 Derby 数据库,并且希望在容器中运行它,您可以选择挂载主机目录或创建 Docker 数据卷,具体取决于您的需求和用例:

1、挂载主机目录

  • 适用场景:如果您只是想在容器中运行 Derby 数据库,并且不需要数据持久性,或者不需要与其他容器共享数据库数据,那么挂载主机目录可能是一个简单的解决方案。
  • 优点:容易设置和管理,容器内的 Derby 数据库可以直接读取和写入主机上的目录。
  • 缺点:数据的生命周期与主机上的目录紧密关联,如果主机上的目录被删除,数据也会丢失。
示例命令(挂载主机目录):
docker run -d -v /宿主机目录:/容器目录 my_derby_image

2、创建 Docker 数据卷

  • 适用场景:如果您希望 Derby 数据库的数据持久性,或者希望将数据库数据与容器解耦,以便能够更轻松地备份、迁移或共享数据,那么创建 Docker 数据卷可能更合适。
  • 优点:数据卷的生命周期独立于容器和主机,更适合持久化数据和数据共享。
  • 缺点:需要更多的 Docker 命令来创建、管理和备份数据卷。
示例命令(创建 Docker 数据卷):
docker run -d -v my_derby_data_volume:/容器目录 my_derby_image
总的来说,如果您需要 Derby 数据库的数据持久性或希望将数据库数据与容器解耦,我建议使用 Docker 数据卷。这将使您更轻松地管理和维护数据库数据,并且允许您在不同的容器中共享相同的数据卷,以满足不同的用例需求。如果只是为了临时测试或开发目的,挂载主机目录也是一个可行的选项。

相关文章:

【Docker】挂载数据卷

一、Docker数据卷说明及操作 在Docker中挂载数据卷是一种将数据持久化保存的方法,以便容器之间或容器与主机之间共享数据。以下是如何在Docker中挂载数据卷的步骤: 1、创建数据卷 首先,您需要创建一个数据卷。可以使用以下命令创建一个数据卷…...

[技术干货]spring 和spring boot区别

Spring 和 Spring Boot 都是 Java 框架,用于构建企业级应用程序。Spring 是一个完整的框架,提供各种功能,包括依赖注入、事务管理、数据访问、Web 开发等。Spring Boot 是一个基于 Spring 的框架,旨在简化 Spring 应用程序的开发和…...

【hudi】数据湖客户端运维工具Hudi-Cli实战

数据湖客户端运维工具Hudi-Cli实战 help hudi:student_mysql_cdc_hudi_fl->help AVAILABLE COMMANDSArchived Commits Commandtrigger archival: trigger archivalshow archived commits: Read commits from archived files and show detailsshow archived commit stats: …...

RK3588 添加ROOT权限

一.ROOT简介 ROOT权限是Linux和Unix系统中的超级管理员用户帐户,该帐户拥有整个系统的最高权利,可以执行几乎所有操作。ROOT就是获取安卓系统中的最高用户权限,以便执行一些需要高权限才能执行的操作(包括卸载系统自带程序、刷机、备份、还原…...

【云原生】k8s-----集群调度

目录 1.k8s的list-watch机制 1.1 list-watc机制简介 1.2 根据list-watch机制,pod的创建流程 2.scheduler的调度策略 2.1 scheduler的调度策略简介 2.2 Scheduler预选策略的算法 2.3 Scheduler优选策略的算法 3. k8s中的标签管理及nodeSelector和nodeName的 调…...

一键集成prometheus监控微服务接口平均响应时长

一、效果展示 二、环境准备 prometheus + grafana环境 参考博文:https://blog.csdn.net/luckywuxn/article/details/129475991 三、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter...

2023/9/13 -- C++/QT

作业&#xff1a; 1> 将之前定义的栈类和队列类都实现成模板类 栈&#xff1a; #include <iostream> #define MAX 40 using namespace std;template <typename T> class Stack{ private:T *data;int top; public:Stack();~Stack();Stack(const Stack &ot…...

mybatis mapper.xml转建表语句

从网上下载了代码&#xff0c;但是发现没有DDL建表语句&#xff0c;只能自己手动创建了&#xff0c;感觉太麻烦&#xff0c;就写了一个工具类 将所有的mapper.xml放入到一个文件夹中&#xff0c;程序会自动读取生成建表语句 依赖的jar <dependency><groupId>org.d…...

封装使用Axios进行前后端交互

Axios是一个强大的HTTP客户端&#xff0c;用于在Vue.js应用中进行前后端数据交互。本文将介绍如何在Vue中使用Axios&#xff0c;并通过一个企业应用场景来演示其实际应用。 Axios简介 公众号&#xff1a;Code程序人生&#xff0c;个人网站&#xff1a;https://creatorblog.cn A…...

SOA、分布式、微服务

SOA&#xff1a; SOA是一种软件设计架构&#xff0c;用于构建分布式系统和应用程序。它将应用程序拆分为一系列松耦合的服务&#xff0c;这些服务通过标准化的接口进行通信&#xff0c;并能够以可编程方式组合和重用。SOA的目标是提高系统的灵活性、可扩展性和可维护性。 特点&…...

json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割

json数据传输压缩以及数据切片分割分块传输多种实现方法&#xff0c;大数据量情况下zlib压缩以及bytes指定长度分割。 import sys import zlib import json import mathKAFKA_MAX_SIZE 1024 * 1024 CONTENT_MIN_MAX_SIZE KAFKA_MAX_SIZE * 0.9def split_data(data):"&q…...

移动端APP测试-如何指定测试策略、测试标准?

制定项目的测试策略是一个重要的步骤&#xff0c;可以帮助测试团队明确测试目标、测试范围、测试方法、测试资源、测试风险等&#xff0c;从而提高测试效率和质量。本篇是一些经验总结&#xff0c;理论分享。并不是绝对正确的&#xff0c;也欢迎大家一起讨论。 文章目录 一、测…...

【Redis】深入探索 Redis 主从结构的创建、配置及其底层原理

文章目录 前言一、对 Redis 主从结构的认识1.1 什么是主从结构1.2 主从结构解决的问题 二、主从结构创建2.1 配置并建立从节点2.2.1 从节点配置文件2.2.2 启动并连接 Redis 主从节点2.2.3 SLAVEOF 命令2.2.4 断开主从关系 2.2 查看主从节点的信息2.2.1 INFO REPLICATION 命令2.…...

CSS 滚动驱动动画 scroll-timeline ( scroll-timeline-name ❤️ scroll-timeline-axis )

scroll-timelinescroll-timeline-name❤️scroll-timeline-axis 解决问题语法 animation-timeline-nameanimation-timeline-axis scroll-timeline ( scroll-timeline-name ❤️ scroll-timeline-axis ) 在 scroll() 的最后我们遇到了因为定位问题导致滚动效果失效的情况, 当…...

9.19号作业

2> 完成文本编辑器的保存工作 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QFontDialog> #include <QFont> #include <QMessageBox> #include <QDebug> #include <QColorDialog> #include <QColor&g…...

Mybatis学习笔记9 动态SQL

Mybatis学习笔记8 查询返回专题_biubiubiu0706的博客-CSDN博客 动态SQL的业务场景&#xff1a; 例如 批量删除 get请求 uri?id18&id19&id20 或者post id18&id19&id20 String[] idsrequest.getParameterValues("id") 那么这句SQL是需要动态的 还…...

element表格 和后台联调

1.配置接口 projectList:/api/goods/xxx,//产品列表2.请求接口(get请求默认参数page) // 产品列表 pageprojectList(params){return axios.get(base.projectList,{params})}3.获取数据 直接放到created里边去了 刷新页面就可以看到 async projectList(page){let res await t…...

基于SSM的智慧城市实验室主页系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

怒赞,阿里P8推荐的Java面试宝典:41个专题PDF(史上最全+面试必备)

《尼恩Java面试宝典》 40岁老架构师 尼恩 经过对大量 Java面试题 的不断梳理、迭代&#xff0c; 编著成5000页的《尼恩Java面试宝典》&#xff0c;致力于体系化&#xff0c; 系统化&#xff0c;形象化 梳理&#xff0c;形成一个大的知识体系&#xff0c;从而帮助大家 进大厂&a…...

线程池各个参数设置说明

1. corePoolSize 核心线程数 看处理业务属于IO密集型还是属于cpu密集型IO密集型: 通常设置为N1&#xff0c;还有一个计算公式&#xff1a;线程数 cpu数*&#xff08;线程等待时间/线程总的处理时间&#xff09; 但是由于服务器除了这个服务可能还部署有其他服务&#xff0c;…...

springBoot对接多个mq并且实现延迟队列---未完待续

mq调用流程 创建消息转换器 package com.wd.config;import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.context.annotation.Bean; import o…...

Pytorch从零开始实战04

Pytorch从零开始实战——猴痘病识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——猴痘病识别环境准备数据集模型选择模型训练数据可视化其他模型图片预测 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytor…...

北大C++课后记录:文件读写的I/O流

前言 文件和平常用到的cin、cout流其实是一回事&#xff0c;可以将文件看作一个有限字符构成的顺序字符流&#xff0c;基于此&#xff0c;也可以像cin、cout读键盘数据那样对文件进行读写。 读写指针 输入流的read指针 输出流的write指针 注&#xff1a;这里的指针并不是普…...

详解Linux的grep命令

2023年9月19日&#xff0c;周二晚上 先写这么多吧&#xff0c;以后有空再更新&#xff0c;还要一些作业没写完.... 目录 概述查看grep命令的所有选项grep的常用选项选项-i选项-v选项-n选项-c​编辑选项-l组合使用 概述 grep命令在Linux系统中是一个很重要的文本搜索工具和过…...

spark6. 如何设置spark 日志

spark yarn日志全解 一.前言二.开启日志聚合是什么样的2.1 开启日志聚合MapReduce history server2.2 如何开启Spark history server 三.不开启日志聚合是什么样的四.正确使用log4j.properties 一.前言 本文只讲解再yarn 模式下的日志配置。 二.开启日志聚合是什么样的 在ya…...

glibc: strlcpy

https://zine.dev/2023/07/strlcpy-and-strlcat-added-to-glibc/ https://sourceware.org/git/?pglibc.git;acommit;h454a20c8756c9c1d55419153255fc7692b3d2199 https://linux.die.net/man/3/strlcpy https://lwn.net/Articles/612244/ 从这里看&#xff0c;这个strlcpy、st…...

如何在 Buildroot 中配置 Samba

在 Buildroot 中配置 Samba 在 Buildroot 中配置 Samba 可以通过以下步骤完成&#xff1a; 1. 进入 Buildroot 的根目录。 2. 执行 make menuconfig 命令&#xff0c;打开 Buildroot 的配置菜单。 3. 在配置菜单中&#xff0c;使用键盘导航到 "Target packages" 选…...

SSM02

SSM02 此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作 首先&#xff0c;我们应当有一个登录成功后的主界面 在webapp下新建 1.main.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…...

day3_QT

day3_QT 1、文件保存2、始终事件 -闹钟 1、文件保存 2、始终事件 -闹钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTime> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { clas…...

js-map方法中调用服务器接口

在 Array.prototype.map() 方法中调用服务器接口时&#xff0c;可以使用异步函数来处理。 示例&#xff1a; async function fetchData() {try {const response await fetch(https://api.example.com/data); // 通过 fetch 发送请求const data await response.json(); // 解…...

旧电脑做网站服务器/搜索引擎优化的工具

Martin Fowler最近的一篇文章&#xff1a;LMAX架构。LMAX是一种新型零售金融交易平台&#xff0c;它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上&#xff0c;核心是一个业务逻辑处理器&#xff0c;它能够在一个线程里每秒处理6百万订单. 业务逻…...

网站开发学习课程/成都seo顾问

为什么80%的码农都做不了架构师&#xff1f;>>> 由于本从精力有限&#xff0c;如果内容有更新可能无法及时更新其他渠道的内容&#xff0c;请移步简书 查看文章 由于之前公司项目一直迭代速度很快&#xff0c;几乎隔几天就需要发布测试包给同事们进行测试&#xff…...

东莞网站建设定制/seo有哪些作用

深入理解Class---常量池一、概念1、jvm生命周期启动&#xff1a;当启动一个java程序时&#xff0c;一个jvm实例就诞生了&#xff0c;任何一个拥有main方法的class都可以作为jvm实例运行的起点。运行&#xff1a;main()函数作为程序初始线程起点&#xff0c;其它线程由该线程启动…...

疏通下水道网站怎么做/站长网站推广

面向对象 面向对象概述&#xff1a; 类和对象的概念&#xff1a; 类 &#xff1a; 抽象名词&#xff0c;用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 对象 &#xff1a; 具体的事物&#xff0c;通过类定义的数…...

东莞保安公司招聘电话/seo sem是什么职位

OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用。 TCP/IP体系结构则不同&#xff0c;但它却得到了非常广泛的应用。TCP/IP是一个四层的体系结构&#xff0c;它包含应用层、运输层、网际层和网络接口层&#xff08;用网际层这个名字是强调这一层是为了解决…...

视频网站设计/南召seo快速排名价格

Description JSOI交给队员ZYX一个任务&#xff0c;编制一个称之为“文本生成器”的电脑软件&#xff1a;该软件的使用者是一些低幼人群&#xff0c; 他们现在使用的是GW文本生成器v6版。该软件可以随机生成一些文章―――总是生成一篇长度固定且完全随机的文章—— 也就是说&am…...