【中间件】docker数据卷

这篇具有很好参考价值的文章主要介绍了【中间件】docker数据卷。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

       📝个人主页:五敷有你      

 🔥系列专栏:中间件

⛺️稳中求进,晒太阳

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

1.数据卷(容器数据管理)

修改nginx的html页面时,需要进入nginx内部。并且因为内部没有编辑器,修改文件也很麻烦。

这就是因为容器与数据(容器内文件)耦合带来的后果。要解决这个问题,必须将数据与容器解耦,这就要用到数据卷了。

1.1.什么是数据卷

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。

这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了

1.2.数据集操作命令

数据卷操作的基本语法如下:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

  • create 创建一个volume

  • inspect 显示一个或多个volume的信息

  • ls 列出所有的volume

  • prune 删除未使用的volume

  • rm 删除一个或多个指定的volume

1.3.创建和查看数据卷

需求:创建一个数据卷,并查看数据卷在宿主机的目录位置

① 创建数据卷

docker volume create html

② 查看所有数据

docker volume ls

结果:

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

③ 查看数据卷详细信息卷

docker volume inspect html

结果:

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

可以看到,我们创建的html这个数据卷关联的宿主机目录为/var/lib/docker/volumes/html/_data目录。

小结

数据卷的作用:

  • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

数据卷操作:

  • docker volume create:创建数据卷

  • docker volume ls:查看所有数据卷

  • docker volume inspect:查看数据卷详细信息,包括关联的宿主机目录位置

  • docker volume rm:删除指定数据卷

  • docker volume prune:删除所有未使用的数据卷

1.4.挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:

docker run \
  --name mn \
  -v html:/root/html \
  -p 8080:80
  nginx \

这里的-v就是挂载数据卷的命令:

  • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

1.5.案例-给nginx挂载数据卷

需求:创建一个nginx容器,修改容器内的html目录内的index.html内容

分析:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。

提示:运行容器时使用 -v 参数挂载数据卷

步骤:

① 创建容器并挂载数据卷到容器内的HTML目录

docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx

② 进入html数据卷所在位置,并修改HTML内容

# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html

1.6.案例-给MySQL挂载本地目录

容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:

  • 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录

  • 直接挂载模式:宿主机目录 ---> 容器内目录

如图:

【中间件】docker数据卷,中间件,中间件,云原生,docker,微服务,容器,运维

语法

目录挂载与数据卷挂载的语法是类似的:

  • -v [宿主机目录]:[容器内目录]

  • -v [宿主机文件]:[容器内文件]

需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

实现思路如下:

1)在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像

2)创建目录/tmp/mysql/data

3)创建目录/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf

4)去DockerHub查阅资料,创建并运行MySQL容器,要求:

① 挂载/tmp/mysql/data到mysql容器内数据存储目录

② 挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件

③ 设置MySQL密码

1.7.小结

docker run的命令中通过 -v 参数挂载文件或目录到容器中:

  • -v volume名称:容器内目录

  • -v 宿主机文件:容器内文

  • -v 宿主机目录:容器内目录

数据卷挂载与目录直接挂载的

  • 数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找

  • 目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看文章来源地址https://www.toymoban.com/news/detail-843660.html

到了这里,关于【中间件】docker数据卷的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://blog.csdn.net/m0_62645012/article/details/137021315

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [运维|中间件] 东方通TongWeb使用笔记

    东方通tongweb部署服务 东方通tongweb部署服务 默认访问地址 http://ip:9060/console/ 默认用户名密码 TongWeb7.0默认用户名密码:thanos,thanos123.com

    2024年02月14日
    浏览(14)
  • [运维|中间件] Apache APISIX使用笔记

    Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。 官方文档地址 快速安装

    2024年02月14日
    浏览(14)
  • [运维|中间件] 东方通TongWeb忘记密码后修改密码

    Tongweb忘记密码处理办法 以下步骤将thanos用户密码修改为 thanos123.com 编辑 twusers.properties 文件 将thanos的内容修改为默认的密码信息:

    2024年02月09日
    浏览(8)
  • 阿里云顺利通过云原生中间件成熟度评估

    前言: 2023 年 6 月 6 日,由中国信息通信研究院(以下简称“中国信通院”)承办的“ICT中国·2023 高层论坛-云原生产业发展论坛”在北京召开,会上正式发布了一系列云原生领域评估结果。 阿里云计算有限公司(以下简称“阿里云”)消息队列 RocketMQ 通过了“云原生中间件

    2024年02月12日
    浏览(10)
  • 系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理

    2024年02月08日
    浏览(16)
  • 【云原生进阶之PaaS中间件】第二章Zookeeper-1-综述

            ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机

    2024年02月09日
    浏览(8)
  • 【云原生进阶之PaaS中间件】第一章Redis-1.4过期策略

            除了string独有设置过期时间的方法,其他类型都需依靠expire方法设置时间,若: 未设置时间,则缓存永不过期 设置过期时间,但之后又想让缓存永不过期,使用persist         设置key的过期时间。超时后,将会自动删除该key。在Redis的术语中一个key的相关超时

    2024年02月09日
    浏览(10)
  • 【云原生进阶之PaaS中间件】第一章Redis-1.3Redis配置

            Redis支持采用其内置默认配置的方式来进行启动,而不需要提前配置任何文件,但是这种启动方式只推荐在测试和开发环境中使用,但更好的方式是通过提供一个Redis的配置文件来对Redis进行配置, 这个配置文件一般命名为’redis.conf’。         Redis的配置文件

    2024年02月09日
    浏览(13)
  • 【云原生进阶之PaaS中间件】第一章Redis-2.3.3集群模式

            Redis集群是一个提供在多个Redis节点之间共享数据的程序集。它并不像Redis主从复制模式那样只提供一个master节点提供写服务,而是会提供多个master节点提供写服务,每个master节点中存储的数据都不一样,这些数据通过数据分片的方式被自动分割到不同的master节点上

    2024年02月10日
    浏览(11)
  • 【云原生进阶之PaaS中间件】第一章Redis-2.4缓存更新机制

            无论先操作db还是cache,都会有各自的问题,根本原因是cache和db的更新不是一个原子操作,因此总会有不一致的问题。想要彻底解决这种问题必须将cache和db的更新操作归在一个事务之下(例如使用一些分布式事务,或者强一致性的分布式协议)。或者采用串行化,

    2024年02月10日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包