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

news2025/2/24 11:37:03

目录

一台宿主机上的容器和宿主机之间的数据共享

创建卷

进入Docker的卷的存储位置

进入卷ep1的数据存储位置

创建容器并挂载至卷ep1上

测试:

进入容器内部查看

一台宿主机上的多个容器之间的数据共享

挂载新的docker容器在该卷上

查看修改的数据是否一致

多台宿主机里的容器之间的数据共享

创建共享目录

添加nfs配置

测试:


准备环境:CentOS7.9中的docker安装

一台宿主机上的容器和宿主机之间的数据共享

[root@docker1 ~]# mkdir volumes
[root@docker1 ~]# cd volumes

创建卷

[root@docker1 volumes]# docker volume create ep1
ep1

[root@docker1 volumes]# docker volume ls

进入Docker的卷的存储位置

[root@docker1 volumes]# cd /var/lib/docker/volumes/

进入卷ep1的数据存储位置

[root@docker1 volumes]# cd ep1
[root@docker1 ep1]# ls
_data
[root@docker1 ep1]# cd _data/
[root@docker1 _data]# ls
[root@docker1 _data]# 

此时里面数据为空

创建容器并挂载至卷ep1上

[root@docker1 _data]#  docker run -d -p 7070:80  --name epN1  --mount source=ep1,target=/usr/share/nginx/html  nginx
a7ac6df0ec1541b6920844ce2cf5c2f05663fb04f0df4edaa7d5da746339ab58

source=ep1,ep1是卷的名字
target=/usr/share/nginx/html  容器里的目标文件夹,nginx默认的存放网站网页的地方——网页根目录

目的是共享宿主机上的卷和nginx存放网页目录的数据

测试:

[root@docker1 _data]# cd /var/lib/docker/volumes/ep1/_data/
[root@docker1 _data]# ls
50x.html  index.html

[root@docker1 _data]# vim index.html 

修改为

进入容器内部查看

[root@docker1 _data]# docker exec -it epN1 bash
root@a7ac6df0ec15:/# cd /usr/share/nginx/html 
root@a7ac6df0ec15:/usr/share/nginx/html# ls
50x.html  index.html

说明数据共享成功

一台宿主机上的多个容器之间的数据共享

挂载新的docker容器在该卷上

另一种挂载语句:

[root@docker1 _data]# docker run -d -p 7071:80  --name epN2  -v ep1:/usr/share/nginx/html  nginx
f674f22d80bd94225f3e0bf5b4dadba4168fb5084ea6f823131aa00a45b24d0d

查看修改的数据是否一致

root@f674f22d80bd:/# cd /usr/share/nginx/html 
root@f674f22d80bd:/usr/share/nginx/html# ls
50x.html  index.html

可以发现和之前修改的数据一样

两个端口也可以访问,说明多个容器之间实现了数据共享

多台宿主机里的容器之间的数据共享

准备环境:nfs搭建

这里使用的另外一台虚拟机为Ubantu24.04

创建共享目录

[root@docker1 ~]# mkdir /nfs/web -p

给其他机器写的权限

[root@docker1 ~]# chmod 777 /nfs/web/

添加nfs配置

[root@docker1 ~]# vim /etc/exports

[root@docker1 ~]# exportfs  -a  输出所有共享目录
[root@docker1 ~]# exportfs  -v  显示输出的共享目录

[root@docker1 ~]# exportfs  -r 重新输出所有的共享目录

在另一台宿主机上测试是否能挂载

root@docker2:/# mkdir /mount
root@docker2:/# mount 192.168.254.136:/nfs/web /mount

root@docker2:/# df -Th

说明挂载成功

在2台docker 宿主机上创建支持nfs功能的卷 nfs-web-1

--opt  o=addr=192.168.254.136  指定nfs服务器的地址
--opt  device=:/nfs/web 指定nfs服务器上共享的文件夹的路径

root@docker2:/# docker volume create --driver local --opt type=nfs --opt  o=addr=192.168.254.136,nolock,soft,rw,sync  --opt  device=:/nfs/web   nfs-web-1
nfs-web-1

在2台docker宿主机上启动容器,使用刚刚创建的nfs-web-1卷

第一台:

[root@docker1 ~]# docker run -d --name test-1  -p 5588:80  -v /nfs/web:/usr/share/nginx/html  nginx
37f39d51dbd4a0846095c1603345448398bacdaefec5c0890be04eb43cf30983

第二台:

root@docker2:/# docker run -d --name test-1  -p 5588:80  -v nfs-web-1:/usr/share/nginx/html  nginx
678e7f31c89eb5e099af55b1e43d6d470a11d6f3f48020d1dcdb78d9cd55ae76

测试:

更改第一台宿主机的nginx配置文件:

[root@docker1 ~]# cd /nfs/web/

[root@docker1 web]# vim index.html 

在第二台宿主机验证:

root@docker2:/# docker exec -it test-1 bash

说明共享成功

也可以在window上访问ip验证:

说明共享成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CocosCreator使用 ProtoBuf WebSocket与服务器对接方法

在 Cocos Creator 中使用 .proto 文件和转换成 TypeScript(TS)两者各有其优缺点,具体选择取决于你的项目需求和团队的开发习惯。以下是两者的一些比较: 1、使用 .proto 文件的优点: 跨语言支持:Protocol B…

对目录的操作

1.fileno:获得文件流指针里的文件描述符 int fd fileno(FILE *fp) 成功返回文件描述符 失败返回-1 2.fdopen:与fileno相反,将文件描述符转换为文件流指针 FILE *fp fdopen(int fd) 成功返回文件流指针 失败返回-1 一、目录&#x…

药物研发企业专属项目管理系统案例(PMS)分享:丽珠医药集团上线瑞杰 SuperProject 系统

丽珠医药集团股份有限公司与北京瑞杰科技达成合作,丽珠医药集团选择瑞杰科技自主研发的 SuperProject 系统来打造一套专业的医药研发项目管理平台,帮助丽珠医药更好地规划、执行和监控药物研发项目,确保项目按时、按质、按量完成,…

数学规划模型|线性规划|整数规划

规划模型的概念 如何来分配有限资源,从而达到人们期望目标的优化分配数学模型,它在数学建模中处于中心地位。 这类问题一般可以归结为数学规划模型,规划模型的应用极为广泛,其作用已为越来越多的人所重视 规划模型是数学建模竞赛…

翰德恩赋能中国邮政信息科技产品创新系列培训

为了增强中邮信科公司需求分析工程师的专业素养,提升其业务需求和业务价值的挖掘能力,进而设计并交付满足用户期望的产品,提升用户体验,运营管理部于2024年4月至6月成功举办了六期需求分析工程师能力提升系列培训。 本次系列培训…

Maven依赖管理【后端 2】

Maven依赖管理详解 在Java项目开发中,依赖管理是一个至关重要的环节。Maven作为Java世界中最流行的项目管理工具之一,通过其强大的依赖管理机制,极大地简化了项目构建和依赖管理的复杂性。本文将详细介绍Maven的依赖配置、依赖传递以及依赖范…

QT生成.exe文件无法在未安装QT的电脑上运行的解决办法

在没有安装qt的电脑上运行qt生成的exe文件,提示: The application failed to start because no Qt platform plugin could be initialized 在网上找了很多办法,我尝试了 手动: 1、修改环境变量,2,添加pla…

Hadoop未授权访问漏洞

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执…

【密码学】网络攻击类型:窃听攻击、假冒攻击、欺骗攻击和重放攻击

一、窃听攻击、假冒攻击、欺骗攻击和重放攻击的定义 这些攻击从名字中就大概能知道他们的攻击原理,我就不赘述了,直接用一个表格来一次性介绍四种攻击方式。 攻击类型攻击原理窃听攻击攻击者监听网络中的数据传输以获取敏感信息。示例:在未加…

docker 部署 mysql8

命令 docker run --restartalways --name mysql8 -v /data/mysql/conf:/etc/mysql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/log:/var/log -v /data/mysql/mysql-files:/var/lib/mysql-files -p 3308:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:8 \解释 --rest…

基于单片机的瓦斯浓度检测报警装置的设计与仿真

摘 要: 针 对 煤矿 安全 生产 实际 , 文章首先 介绍 了采用 单 片 机 的煤矿 瓦斯 浓 度检 测 报 警 装 置的整 体 构 架 , 然 后 对 煤矿 瓦斯 浓 度检 测 报 警 装 置 的 各 个 部 分 硬 件 进 行 了 详细 的设计, 给 出了煤矿瓦斯浓 度检…

JavaEE-多线程编程定时器(多线程完结篇)

定时器就是闹钟的效果,指定要一个任务(runnable),指定一个时间,此时这个任务不会立马去执行,而是时间到了才会去执行,这个过程称为——定时执行/延时执行。 日常开发中定时执行是一个非常重要的…

Ubuntu 22.04.4LTS 安装 Docker

更新Ubuntu: sudo apt-get update添加Docker库信息: sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release运行下列命令添加Docker官方GPG密钥: sudo curl -fsSL https://mirrors.ustc.edu.cn/d…

Mybatis的基础配置解读,并简单实现增删改查

首先,在了解mybatis的内容之前,我们先学习了解一下mybatis的主配置文件,主配置文件(Mybatis-config.xml)是我们构建SqlSessionFactory的依据。作为Mybatis的核心内容,其内部标签的顺序,一系列配…

谷粒商城实战笔记-140-商城业务-nginx-搭建域名访问环境二(负载均衡到网关)

文章目录 一,通过域名访问商城架构设计1,为什么nginx要将请求转发给网关2,架构设计 二,配置1,nginx配置1.1 nginx.conf1.2 gulimall.conf1.3 配置原理 2,网关配置 三,记录2个问题1,网…

qt的项目结构

目录 创建新的项目 第一个hell0程序,qt的项目结构 main函数 Widget头文件: pro文件 命名规范 QtCreator 常用快捷键 Qt里边绝大部分的类都是继承自QObject是一个顶层类 父子关系 Qt坐标系 QT常用API函数 对象树 信号和槽机制 自定义信号和槽 自定义信号…

PHP企业培训考试系统小程序源码

🚀企业培训考试系统,赋能员工成长新引擎📚 🌱 开篇:解锁企业培训新篇章 在快速变化的商业环境中,员工的能力提升是企业持续发展的关键。🚀 传统的培训方式已难以满足现代企业的需求&#xff0…

CentOS7.9误删了yum,怎么办?

起因是这样的,有人不小心将CentOS7.9的yum插件给删除了,导致了yum命令不能用了。 据他说是执行了这句命令之后,导致的问题。 pm -qa |grep yum | xargs rpm -e --nodeps解决办法 本方法只针对:CentOS Linux release 7.9.2009 (Core)版本生效,其他版本可以参考: https://vau…

Studying-代码随想录训练营day62| Floyd 算法精讲、A*算法精讲(A star算法)、最短路算法总结篇、图论总结

第62天,完结撒花*★,*:.☆( ̄▽ ̄)/$:*.★* ,最后的两个算法学习,编程语言C 目录 Floyd 算法精讲 A*算法精讲(A star算法) A*算法 复杂度分析 A*算法的缺点 最短路算法总结篇 图论总结…

log4j2: CVE-2021-44228[RCE]

漏洞概述 CVE-2021-44228为Apache Log4j2漏洞,被称为"Log4Shell"。攻击者将恶意代码与服务器进行交互,使服务器日志组件将其记录并执行,从而造就RCE远程代码执行漏洞。 漏洞原理 日志记录机制:Log4j2是一个日志记录工…