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

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

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

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

Easy Excel

Easy Excel 一、依赖引入二、基本使用1. 定义实体类&#xff08;导入/导出共用&#xff09;2. 写 Excel3. 读 Excel 三、常用注解说明&#xff08;完整列表&#xff09;四、进阶&#xff1a;自定义转换器&#xff08;Converter&#xff09; 其它自定义转换器没生效 Easy Excel在…...