玩坏docker笔记(十八):主机与容器、容器与容器之间数据共享

Docker 与 K8S学习笔记(十 二)容器间数据共享 Python微信订餐小程序课程视频 https://edu.youkuaiyun.com/course/detail/36074 Python实战量化交易理财系统 https://edu.youkuaiyun.com/course/detail/35475 数据共享是volume的关键特性,今天我们来看一下通过volume实现容器与host、容器与容器之间共享数据。 一、容器与host共享数据 在上一篇中介绍到的bind mount和docker manage volume,它们都可以实现容器与host之间共享数据,只是方式有所 阅读详情
数据共享
容器与host主机之间共享数据

Bind mount:直接将共享目录mount到容器
Docker managed volume:docker cp
在这里插入图片描述
也可以通过linux下的cp将数据复制到/var/lib/docker/volumes/xxx

容器之间共享数据

第一种方式:将共享数据直接mount到多个容器。
在这里插入图片描述
开启两个容器,只要host主机pv文件夹中有改动,则所有挂载的容器都会改动。
第二种:volume container
Volume container是专门为其他容器提供volume的容器,它提供的卷可以是bind mount,也可以是docker managed volume.下面我么创建一个volume container.
在这里插入图片描述
注意这里执行的是create命令,因为volume container的作用只是提供数据,它本身不需要处于运行状态。容器mount了连个volume:(1)bind mount,存放web Server静态文件;(2)docker managed volume,存放一些工具
通过docker inspect可以查看到这两个volume
在这里插入图片描述
在这里插入图片描述
其他容器可以通过–volume-from使用vc_data这个volume container:
在这里插入图片描述

查看web5都有哪些volume:
在这里插入图片描述
在这里插入图片描述
与bind mount相比,不必为每个容器指定hostpath,所有path都在volume container
中定义好了,只需要容器与volume container关联即可,实现了容器与host解偶。

data-packed volume container数据完全放到volume container中,同时又可以与其他容器共享(推荐)

原理:将数据打包到镜像,然后通过docker managed volume共享。
用dockerfile构建镜像:

FROM busybox:latest
ADD /home/work/htdocs /usr/local/apache2/htdocs
VOLUME /usr/local/apache2/htdocs

Add将文件添加到容器目录/usr/local/apache2/htdocs.
Volume的作用与-v等效。用来创建docker managed volume,mount point为/usr/local/apache2/htdocs,因为这个目录就是add添加的目录,所以会将已有的数据复制到volume中。
Build新镜像datapacked。

Docker build -t datapacked .

用新镜像创建data-packed volume container:

Docker create --name vc_data datapacked

因为在dockerfile中已经使用了volume指令,这里就不需要指定volume的mount point了。启动httpd容器并使用data-packed volume container:

docker run -d -p 80:80 --volume-from vc_data httpd

Curl 127.0.0.1:80

容器能够正确读取volume中的数据。data-packed volume container是自包含的,不依赖host提供数据,具有很强移植性,非常适合静态数据的场景,比如应用的配置信息、webserver的静态文件。

Data Volume生命周期管理

关注点:volume的创建、共享、使用
备份:搭建本地Registry

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

所有本地镜像都保存在host主机的/myregistry目录中,我们要做的就是定期备份该目录。
恢复:
如果数据损坏了,直接将备份的数据复制到/myregistry目录中即可
迁移:
如果我们要使用新版本Registry,这就涉及数据迁移,方法:
1)docker stop当前的Registory容器
2)启动新版本容器并mount所有volume

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:latest

在使用新版本容器前要确保新版本的默认数据路径是否发生变化。
销毁:
Docker不会销毁bind mount,删除数据只能由host负责。对于docker managed volume,在执行docker rm删除容器时可以带上-v参数,docker会将容器使用到的volume一并删除,前提是没有其他容器mount该volume,目的是保护数据。
如果删除时没有带上-v参数,就会产生孤儿volume,好在docker提供了volume子命令可以对volume维护。
通过docker volume ls可以查看容器使用的docker managed volume
对于孤儿volume可以使用

docker volume rm (volume name)

删除。
如果批量删除孤儿volume:

docker volume rm ${docker volume ls -q}
实现多容器与宿主机之间数据共享 跨主机,实现多容器通信 阅读详情

相关推荐

实现跨宿主机多docker容器间数据共享

实现跨宿主机多docker容器间数据共享

Docker 之间如何共享数据?

容器之间共享数据 第一种方法是将共享数据放在 bind mount 中,然后将其 mount 到多个容器。还是以 httpd 为例,不过这次的场景复杂些,我们要创建由三个nginx容器组成的 web server 集群,它们使用相同的 html 文件,操作如下: (1)将 /data/nginx/html/ mount 到三个nginx容器. [root@localhost ~]# cat /data/nginx/html/index.html share directory [root@loc.

小楼一夜听春雨,深巷明朝卖杏花 779

flowable表中文注释-表结构-主要表结构字段注释-sql脚本

flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。

bushinakeshu的博客 1068

docker(八)容器与容器/host的数据共享

docker(八)容器与容器/host的数据共享

c13891506947的博客 1020

保姆级教程:手把手配置AutoSar诊断复位(Dcm 0x11服务联动BswM/EcuM)

本文提供AutoSar诊断复位(Dcm 0x11服务联动BswM/EcuM)的保姆级配置教程,详细讲解从诊断服务基础配置到BswM规则引擎搭建、服务端口映射及EcuM复位执行的完整流程。通过Vector配置工具的实际截图和代码片段,帮助开发者高效实现远程复位功能,并分享调试技巧与性能优化实践。

weixin_30756499的博客 543

YOLOv8实战:用Labelme标注自定义数据集并训练分割模型(附完整代码)

本文详细介绍了使用Labelme标注自定义数据集并训练YOLOv8实例分割模型的完整流程。从环境搭建、数据标注与格式转换,到模型训练、调优、验证及部署,提供了实战代码和调优建议。文章还探讨了如何结合追踪目标技术,实现视频流中的实例分割与目标追踪,为计算机视觉应用提供了一套可复制的解决方案。

552

Ubuntu 操作系统的声音与多媒体配置

Ubuntu 音频子系统架构(ALSA/PulseAudio/PipeWire)系统级音频配置工具与命令行操作多媒体应用(播放器/录音软件)的配置优化开发者音频接口(Python/C++ 音频编程)常见音频故障诊断与修复目标是让读者既能解决日常音频使用问题,也能理解底层技术原理,满足从普通用户到开发者的不同需求。基础架构:解析 ALSA/PulseAudio 核心组件与交互逻辑配置实战:系统设置、命令行工具、编程接口的分步演示应用场景:音乐播放、视频会议、录音制作的针对性配置。

操作系统内核探秘的博客 1420

基于DeepFashion2和YOLOv12的服装检测系统:从数据集构建到UI界面实现

官方网站:数据集大小: 约80GB(压缩包)包含训练集、验证集和测试集数据集目录结构:text复制下载├── train/└── test/├── image/├── annos/Backbone优化:使用更高效的CSPNet结构Neck增强:引入BiFPN特征金字塔网络Head改进:使用解耦头(Decoupled Head)提升分类和定位精度损失函数:采用CIoU损失和分类Focal Loss训练策略:引入Mosaic数据增强和自适应锚框python复制下载。

YOLO 498

Docker的数据管理

用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。容器中管理数据主要有两种方式:数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。 如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容

octoben的博客 362

乐企增值税及附加税费预缴申报表填报能力说明文档V1.004

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 354

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践

本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。

数据知道的博客 1150

【Docker】多个容器和宿主机之间如何进行数据同步和数据共享?容器数据卷从介绍到常用操作图文教程

你是否担心 Docker 容器被删除后,容器内的重要数据就丢失了?你是否想知道,Docker容器中的重要数据如何备份到外面的宿主机中?你是否想知道,多个容器之间如何能够数据共享并相互同步?恭喜你,看完本篇博文,你将能解决上述所有问题。

Sihang_Xie的博客 6742

WQ7033开发指南(应用篇)之2.1 主函数详解(1)

整个系列文章查看: ​​​​​​WQ7033开发指南汇总 目录 1.函数模块位置 2.函数main_chip_init()解析 2.1 cal_data_ana_load() 2.2 函数iot_cache_restore_register()解析 3.函数iot_soc_chip_init()解析 3.1 soc芯片初始化的低功耗使能 3.2 分支预设功能使能 3.3 数据异常中止使能 3.4 外围低速总线访问路径使能 3.5 1.8V DCDC功能配置 3.6 ADC配..

心跳包的博客 802

【docker系列】容器间进行数据共享的三种方式

我们本节为大家介绍的容器数据共享,是指在同一台服务器宿主机的容器之间的数据共享。如果涉及到跨服务器容器的数据共享,实际上是涉及到服务器之间的数据同步或分布式文件系统,基本不属于docker技术范畴。

字母哥博客 3469

用 Joule 点燃 ABAP 开发者的舞台感:SAP BTP 上的 ABAP AI 能力实战解读

摘要:SAP推出的Joule for developers和ABAP AI功能为开发者提供了智能辅助工具,旨在优化ABAP开发流程。主要功能包括上下文感知的代码预测补全、代码解释、单元测试生成和开发问题实时解答。这些能力特别适合应对Cloud环境下ABAP开发的复杂约束,如Clean Core原则和受限语法范围。通过减少重复劳动和提升代码理解效率,该工具帮助开发者将注意力集中在业务逻辑而非技术细节上。随着企业加速向S/4HANA迁移,这些AI功能将在遗留代码改造和云适配中发挥更大作用,建议团队将其纳入工程体

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 296

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

在使用Docker时,如何处理容器之间共享数据以及与宿主机之间的数据共享

以上是处理容器之间以及与宿主机之间数据共享的一些常见方法。根据实际情况选择适合的方法来实现数据共享。

越努力越幸运。 1426

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

宿主机与容器(docker)之间的数据共享

准备环境:CentOS7.9中的。

qq_63627848的博客 2732

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Docker】生命周期管理 网络 存储 监控和日志管理

docker 容器 生命周期管理 网络 存储 监控和日志管理

Jzin的博客 471

如何在 Docker 容器和宿主机之间共享数据

docker容器与宿主机之间共享数据 前言 通常 Docker 的容器不会随时处在运行状态,默认情况下,只能在容器在活跃状态且保持运行的时,才能在容器内部创建数据。如果想要随时访问容器内的信息,我们可以使用 Docker 的卷区,它可以让数据在容器和主机之间共享。 举例说明:假如我们想要使用官方的 Docker Nginx 镜像并保留 Nginx 日志的永久副本文件,供以后分析用。默认情况下,Nginx Docker 镜像会将日志文件存放在 DockerNginx容器的/var/log...

My Blogs 3872

Docker学习(三)——docker容器与主机,容器与容器数据共享

Docker学习(三)——docker容器与主机文件传输1.将容器(container)中的文件拷贝至主机2.将主机中文件挂载(使用volume)至容器(container) 1.将容器(container)中的文件拷贝至主机 2.将主机中文件挂载(使用volume)至容器(container) ...

weixin_44783277的博客 1076

docker 容器共享数据_如何在Docker容器之间共享数据

docker 容器共享数据 介绍 (Introduction) Docker is a popular containerization tool used to provide software applications with a filesystem that contains everything they need to run. Using Docker containers ens...

1963

docker 容器之间通信_如何在Docker容器和主机之间共享数据?

原文标题:Docker Basics: How to Share Data Between a Docker Container and Host,作者:Jack Wallen有了Docker容器,贵公司可以大规模、迅速地提供应用程序和服务。又由于部署容器化应用程序如此简单,你可以很快上手。你在接触Docker后可能很快发现一点,一旦部署完毕,容器在如何保存和包含数据方面很有限,而这种限...

weixin_39781186的博客 691

docker容器数据卷—容器与宿主机数据共享(六)

数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据卷一直存在,知道没有容器使用 一、命令方式创建 命令创建,可以让容器和宿主机之间数据共享 在docker run命令的时候,使用-v标记可以在容器内创建一个数据卷。多次使用-v标记可以创建多个数据卷。 docker run -...

照亮me的博客 867

Docker数据卷容器--实现两个或多个容器之间的数据同步

文章目录什么是容器数据卷实现三个容器之间的数据共享启动一个叫docker1容器依次启动docker2和docker3并用---volumes-from挂载即使删除容器docker1,其他容器的数据还是存在的实现mysql数据共享的方法结论 什么是容器数据卷 先看下面一副图 自己先创造了一个叫centos1的容器,再用–volumes-from命令创建一个叫centos2的容器centos1和centos2实现了数据共享,centos1被称作是数据卷容器,还可以称作父容器 ==通过volumes fr

weixin_43342105的博客 2477

start docker daemon linux

ubuntu docker环境配置https://blog.youkuaiyun.com/fareast_mzh/article/details/88820445 代码以及命令行下载 git clone git://github.com/luksa/kubernetes-in-action Start the Docker daemon Start manually Once Docker is ...

fareast_mzh的博客 5174

Docker中使用matplotlib显示图像

原理简介 原理上可以把docker镜像看做一台没配显示器的电脑,程序可以运行,但是没地方显示。 而linux目前的主流图像界面服务X11又支持 客户端/服务端(Client/Server)的工作模式 只要在容器启动的时候,将 『unix:端口』或『主机名:端口』共享给docker,docker 就可以通过端口找到显示输出的地方,和linux系统共用显示 具体操作(显示到本地显示器) 1)首先,在主...

BigData_Mining的博客 2816
上一篇: 玩坏docker笔记(十七):数据挂载-Docker managed volume
下一篇: 玩坏docker笔记(十九):安装 Docker Machine
那记忆微凉
博客等级 码龄9年 412粉丝 387原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值