当前位置: 首页 > 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;…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...