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

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

目录

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

创建卷

进入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验证:

说明共享成功

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • celery使用
  • HDFS 之 文件流
  • proteus仿真c51单片机(四)双机串口通信(电路设计及代码)
  • 八 信息系统基础知识(考点篇)试题
  • Obsidian插件安装与开发
  • Thinkphp框架漏洞(附修复方法)
  • 【QT】鼠标按键事件 - QMouseEvent QKeyEvent
  • 在psotgres中的gist和gin索引介绍
  • RM小陀螺技术经验与思考
  • 无法访问jakarta.servlet.http.HttpServletRequest
  • 基于QT实现的简易WPS(已开源)
  • HCIP笔记4-OSPF(2)
  • solidity 数学和密码学函数
  • HarmonyOS应用开发知识地图
  • 清空QWidget
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • ES6系列(二)变量的解构赋值
  • Joomla 2.x, 3.x useful code cheatsheet
  • js写一个简单的选项卡
  • JWT究竟是什么呢?
  • SpringCloud集成分布式事务LCN (一)
  • WebSocket使用
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 高程读书笔记 第六章 面向对象程序设计
  • 回顾2016
  • 来,膜拜下android roadmap,强大的执行力
  • 你真的知道 == 和 equals 的区别吗?
  • 深入浅出webpack学习(1)--核心概念
  • 探索 JS 中的模块化
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 微信小程序填坑清单
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 在electron中实现跨域请求,无需更改服务器端设置
  • - 转 Ext2.0 form使用实例
  • 走向全栈之MongoDB的使用
  • Java总结 - String - 这篇请使劲喷我
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #### golang中【堆】的使用及底层 ####
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (C语言)共用体union的用法举例
  • (solr系列:一)使用tomcat部署solr服务
  • (windows2012共享文件夹和防火墙设置
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (区间dp) (经典例题) 石子合并
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)winform之ListView
  • (转)可以带来幸福的一本书