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

docker 数据卷

Docker数据卷是Docker中的一个核心机制,用于实现容器间数据的持久化和共享。它是宿主机上的一个特殊目录,可以供一个或多个容器使用。容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。

容器数据卷的特性:

  1. 持久性:Docker数据卷是在宿主机上创建的目录或文件系统,它独立于容器的生命周期。这意味着即使容器停止或删除,数据卷中的数据仍然会被保留,从而实现了数据的持久化存储。

  2. 共享性:数据卷可以在不同的容器之间挂载和复用,使得多个容器能够访问到相同的数据源。这种特性在微服务架构下的多容器协作中尤为重要,因为不同的服务或组件可能需要共享某些数据。

  3. 高效性:数据卷直接映射到宿主机的文件系统上,因此相对于使用bind mounts(绑定挂载)或者通过容器内部文件系统读写数据,具有更好的I/O性能。

  4. 实时性:对数据卷的修改会立即生效,无论是在容器内部还是在本地目录中对数据卷进行修改,都能实时反映到其他地方。

1、容器数据卷的挂载

1.1 匿名目录挂载

1 创建容器的只给一个地址,会将容器里面的地址挂载在宿主机下/var/lib/docker/volumes路径下生成

# 创建容器,匿名挂载
docker run -ti -d --name my_nginx -p 8000:80 -v /home/wuzhibin  nginx
# 查看容器信息
docker inspect my_nginx 

2 查看容器数据卷挂载,源件为容器中的数据件,目标卷为宿主机上的数据卷

3 在宿主机上新建一个文件

4 在宿主机的文件映射到容器中

1.2 指定目录挂载

1 指定目录挂载相当于容器中的目录挂载到宿主机的指定目录下

# 创建容器
docker run -ti -d --name my_nginx -p 8000:80 -v /home/wuzhibin:/home/wuzhibin  nginx
# 查看容器信息
docker inspect my_nginx 

2 查看宿主机的目录下的文件大小

3 查看容器中挂载卷的文件大小

两个卷的文件是一致的,不管哪个卷中的文件变化都会同步更新的

1.3 DockerFile 添加数据卷

一般我们构建镜像的都是通过DockerFile文件来构建镜像启动容器的,不会通过命令单独对容器进行数据卷的挂载的, 但是请注意Dockerfile 不能直接指定数据卷映射或挂载, 也就是说Dockfile的挂载只能是匿名挂载

# 数据卷挂载的Dockersfile命令
VOLUME ["/home/wuzhibin","/home/wuzhibin"]

完整的Dockerfile文件

# Dockerfile
#基准镜像
FROM nginx:latest
#作者信息
MAINTAINER "wuzhibin"
#工作目录
WORKDIR /usr/local/src/ 
#设置容器中要挂在到宿主机的目录
VOLUME ["/home/wuzhibin/nginx","/usr/local/nginx/html"]
CMD ["nginx", "-g","daemon off;"]

1 编译nginx镜像

# 新建的Dockerfile文件
vim Dokerfile
# 复制上面内容退出
# 编译docker镜像
docker build . -t my_nginx

2 查看编译的镜像

docker images

3 启动容器

docker run -ti -d --name my_nginx my_nginx

4 查看数据卷挂载情况

docker inspect my_nginx

2、数据卷容器

将一个容器的数据共享给一个挂载该容器的容器,就是数据卷容器。这个容器充当一个数据卷,其他挂载这个数据卷容器的容器之间数据共享。

1 运行数据卷容器

docker run --name=data_contain -v /home/wuzhibin:/home/wuzhibin -ti -d  nginx

2、启动需要挂载数据卷的容器1和容器2

docker run -it -d  --name=my_contain1 --volumes-from data_contain nginx
docker run -it -d  --name=my_contain2 --volumes-from data_contain nginx

3、数据卷中添加数据,其他容器中会同步

docker exec -ti data_contain bash
cd /hmoe/wuzhibin
echo hello world > 1.txt

4 查看其他容器的数据

其他的容器中都存在数据卷容器的文件

上一章:docker 的网络管理-CSDN博客

下一章:DockerFile-CSDN博客

相关文章:

docker 数据卷

Docker数据卷是Docker中的一个核心机制,用于实现容器间数据的持久化和共享。它是宿主机上的一个特殊目录,可以供一个或多个容器使用。容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。 …...

【开发工具】Ubuntu复制CSDN代码多余符号的去除

在Ubuntu中使用CSDN复制的代码时,可能会出现\u200的符号,这个符号会影响代码的编译和运行,因此需要找到一种快速删除这种符号的方法。 通过搜索找到了一种替换为空的删除方式,笔者编写了一个适用于Rust的shell脚本,需要…...

【微服务篇】深入理解微服务注册中心与配置中心

注册中心 设计一个注册中心时,需要关注多个关键方面,以确保其稳定性、可靠性、性能和可扩展性。以下是一些重要的考虑因素: 服务发现机制:注册中心的核心功能是允许服务相互发现。这意味着当一个服务实例启动时,它需…...

数据库安全(redis、couchdb、h2database)CVE复现

redis服务默认端口:6379;我们可以通过端口扫描来判断是否存在该服务。 Redis 是一套开源的使用ANSI C 编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。 Redis 如果在没有开启认证的情况下,…...

道可云元宇宙每日资讯|元宇宙标准化工作组成立大会召开

道可云元宇宙每日简报(2024年3月28日)讯,今日元宇宙新鲜事有: 元宇宙标准化工作组成立大会召开 3月21日,元宇宙标准化工作组成立大会暨第一次全体委员会议在浙江省丽水市青田县召开。元宇宙标准化工作组的建立&#…...

20240322-2-Catboost面试题

Catboost面试题 1. 简单介绍Catboost? CatBoost是一种以对称决策树 为基学习器的GBDT框架,主要为例合理地处理类别型特征,CatBoost是由Categorical和Boosting组成。CatBoost还解决了梯度偏差以及预测偏移的问题,从而减少过拟合的…...

【PSINS工具箱】EKF与UKF滤波

描述 对工具箱SINS/GPS,153例程的修改,将EKF和UKF放在一个文件里面,一次运行可以得到两个滤波的结果。 片段 运行截图 程序完整源代码 在有工具箱的情况下,直接运行此代码,即可得到结果 % 基于PSINS工具箱的IMU数据…...

UOS部署oceanbase

安装docker环境。 镜像可在本文档中下载4.2版本的oceanbase 加载镜像 docker load -i oceanbase_4212_x86_64_20231214.tar.gz注意事项 确保挂载点大于200GLOCAL_IP 部署服务器ipNIC_NAME 部署服务器对应的网络OBCLUSTER_IP_LIST 部署服务器ip 启动容器 sudo docker run …...

Hive查询转换与Hadoop生态系统引擎与优势

目录 摘要一、Hive是什么二、HDFS是什么三、Hive与HDFS的关系四、什么是HiveQL五、什么是mapreduce六、Hive如何将查询转为mapreduce任务七、Hadoop生态系统中的高性能引擎八、使用Hadoop的优点 摘要 Hadoop生态系统中包含了多个关键组件,如Hive、HDFS、MapReduce等…...

WPF上使用MaterialDesign框架---下载与配置

一、介绍: Material Design语言的一些重要功能包括 系统字体Roboto的升级版本 ,同时颜色更鲜艳,动画效果更突出。杜拉特还简要谈到了新框架的一些变化。谷歌的想法是让谷歌平台上的开发者掌握这个新框架,从而让所有应用就有统一的…...

鸿蒙ARKTS--简易的购物网站

目录 一、media 二、string.json文件 三、pages 3.1 登录页面:gouwuPage.ets 3.2 PageResource.ets 3.3 商品页面:shangpinPage.ets 3.4 我的页面:wodePage.ets 3.5 注册页面:zhucePage.ets 3. 购物网站主页面&#xff…...

LabVIEW转动设备故障诊断系统

LabVIEW转动设备故障诊断系统 随着工业自动化技术的不断进步,转动设备在电力、化工、船舶等多个行业中扮演着越来越重要的角色。然而,这些设备在长期运行过程中难免会出现故障,如果不能及时诊断和处理,将会导致生产效率下降&…...

uniapp h5 touch事件踩坑记录

场景:悬浮球功能 当我给悬浮球设置了 position: fixed; 然后监听悬浮球的touch事件,从事件对象中拿到clientY和clientX赋值给悬浮球的left和top属性。当直接赋值后效果应该是这样子: 注意鼠标相对悬浮球的位置,应该就是左上角&a…...

webpack.prod.js(webpack生产环境配置文件)

生产环境:只打包不运行本地服务器 对于在config目录下的webpack.prod.js 1.在根目录下运行 npx webpack --config ./config/webpack.prod.js 2.在package.json文件中配置 "build":"npx webpack --config ./config/webpack.prod.js" const …...

利用python做模拟数据(测试数据),连接数据库和服务器接口,涉及雪花id服务

import datetime import jsonimport pymysql import requests import snowflake.client from faker import Faker#cmd启动snowflake服务: #snowflake_start_server --addresslocalhost --port8910 --dc1 --worker1 def create_testers():# 创建一个中文Faker实例fak…...

大模型日报2024-03-30

大模型资讯 提升大型语言模型推理速度:高效部署技术 摘要: 随着GPT-4、LLaMA和PaLM等大型语言模型(LLMs)不断拓展自然语言处理的边界,研究人员正在探索加速这些模型推理过程的技术。这些技术旨在提高模型部署的效率,以…...

【ARM 嵌入式 C 入门及渐进 14 -- C 代码中取余与取模的使用介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 背景示例 背景 有些文件每行是固定的字符个数,那么如果任意给个字符的序号,怎么通过C 代码获取该字符所在的行呢? 处理这个问题就要用到 C 语言中的取余和取模运算了。 示例 在 C 语言中&…...

C++入门知识详细讲解

C入门知识详细讲解 1. C简介1.1 什么是C1.2 C的发展史1.3. C的重要性1.3.1 语言的使用广泛度1.3.2 在工作领域 2. C基本语法知识2.1. C关键字(C98)2.2. 命名空间2.2 命名空间使用2.2 命名空间使用 2.3. C输入&输出2.4. 缺省参数2.4.1 缺省参数概念2.4.2 缺省参数分类 2.5. …...

pytorch中的torch.hub.load():以vggish为例

pytorch提供了torch.hub.load()函数加载模型,该方法可以从网上直接下载模型或是从本地加载模型。官方文档 torch.hub.load(repo_or_dir, model, *args, sourcegithub, trust_repoNone, force_reloadFalse, verboseTrue, skip_validationFalse, **kwargs)参数说明&a…...

mysql 用户管理-权限管理

学习了用户管理,再学习下权限管理。 3,权限管理 权限管理主要是对登录到MySQL的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中,不合理的权限规划会给MySQL服务器带来安全隐患。数据库管理员要对所有用户的权限进行合理规…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...