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

docker存储

注意:数据卷挂载(卷映射):Docker会自动创建数据卷,并将容器运行所需的文件复制到数据卷中。 目录挂载:如果宿主机上没有对应的目录,容器会因为缺少运行所需的文件而出错。

1.目录挂载

指令:

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

-v /app/nginx/html:/usr/share/nginx/html

app/nginx/html代表外部目录,/usr/share/nginx/html容器内部目录,把容器内部目录映射到外部目录,操做一个另一个也会改变。

修改外部目录:vi /app/nginx/html/index.html

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker</title>
</head>
<body><h1>目录挂在</h1><p>docker run -d --name app01 -p 80:80 -v /app/nginx/html:/usr/share/nginx/html nginx</p>
</body>
</html>

效果:

2.卷映射

先来看一下nginx容器的内部配置文件位置 /etc/nginx,通过下面指令进入一个nginx容器内部,查看配置文件。

命令:ngconf是创建的卷名

docker run -d -p 89:80 --name app02 -v /app/nginx/html:/usr/share/nginx/html -v ngconf:/etc/nginx nginx

外部生成的卷存放位置 /var/lib/docker/volumes

快速查看卷和创建卷的方式

 3.卷映射和文件映射的区别

在Docker中,目录挂载和数据卷挂载是两种常见的挂载方式,它们各有优缺点,适用于不同的场景。

3.1目录挂载

目录挂载是将宿主机上的一个目录直接挂载到容器内的一个目录。这样,容器内的应用程序可以直接访问和修改宿主机上的文件。使用目录挂载的命令如下:

docker run -d --name nginx_dir -p 8080:80 -v /app/nginx/html:/usr/share/nginx/share nginx

优点

  • 易于查找和维护:目录和文件在宿主机上可见,便于查找和管理。

  • 直接挂载:可以直接将宿主机上的目录或文件挂载到容器中。

缺点

  • 需要手动创建和维护:需要手动在宿主机上创建和维护目录和文件。

  • 可能导致权限问题:如果宿主机上的目录或文件权限设置不当,可能会导致容器无法访问。

3.2卷映射或者数据卷挂载

数据卷挂载是将Docker管理的数据卷挂载到容器内的一个目录。数据卷是由Docker管理的特殊目录,存储在宿主机的文件系统中,但不直接暴露给用户。使用数据卷挂载的命令如下:

docker run -d --name nginx_volume -p 8080:80 -v my_volume:/etc/nginx nginx

优点

  • 自动管理:Docker会自动创建和管理数据卷,简化了操作。

  • 数据持久化:即使容器删除,数据卷中的数据仍然保留。

  • 多容器共享:多个容器可以共享同一个数据卷,实现数据共享。

缺点

  • 不易查找:数据卷存储在宿主机的文件系统中,路径较深,不易查找。

  • 依赖Docker管理:需要依赖Docker来管理数据卷,增加了复杂性。

3.2实验对比

  1. 宿主机没有对应的目录或数据卷: 数据卷挂载:Docker会自动创建数据卷,并将容器运行所需的文件复制到数据卷中。 目录挂载:如果宿主机上没有对应的目录,容器会因为缺少运行所需的文件而出错。

  2. 宿主机有对应的目录或数据卷: 数据卷挂载:容器内的数据会覆盖数据卷中的数据。 目录挂载:容器会加载宿主机上的目录,保证容器的正常运行。

  3. 多容器共享: 数据卷挂载和目录挂载:都可以实现多个容器共享文件,通过修改共享的文件,可以在不同的端口访问相同的数据。

总结

选择目录挂载还是数据卷挂载,取决于具体的使用场景和需求。如果需要方便地查找和管理文件,可以选择目录挂载;如果需要数据持久化和多容器共享,可以选择数据卷挂载

相关文章:

  • 23.C语言指针相关知识点2
  • C++代码随想录刷题知识分享-----面试题链表相交
  • 传统农耕展陈如何突破?数字多媒体能否重构文化体验边界?
  • 阿里云ftp服务器登录要怎么做?如何访问ftp服务器?
  • 记录一下QA(from deepseek)
  • 开发vue项目所需要安装的依赖包
  • Redis ⑦-set | Zset
  • Leetcode刷题 | Day49_图论01
  • 《冰雪传奇点卡版》:详细打金攻略!
  • OpenGL学习笔记(法线贴图、视差贴图)
  • 基于 Spring Boot 瑞吉外卖系统开发(九)
  • 读论文《Deep learning-assited pulsed discharge plasma catalysis modeling》2023 ECM
  • 在QGraphicsView中精确地以鼠标为锚缩放图片
  • 【Light文献速览】湖南大学超表面高阶庞加莱球偏振检测时钟技术突破
  • EMC isilon/PowerScale 如何收集日志
  • 【神经网络与深度学习】五折交叉验证(5-Fold Cross-Validation)
  • 数据结构 RBT 插入操作的 Python 代码实现
  • 设计模式(行为型)解释器模式
  • 如何免费把PPT的页面输出为透明的图片-快速制作图新说汇报内容
  • 【图论 拓扑排序 bfs】P6037 Ryoku 的探索|普及+
  • 深圳一季度GDP为8950.49亿元,同比增长5.2%
  • 国家能源局:支持民营企业参股投资核电项目
  • 借助AI应用,自闭症人群开始有可能真正“读懂他人”
  • 国家发改委答澎湃:将建立和实施育儿补贴制度,深入实施提振消费专项行动
  • 酒店就“保洁员调包住客港币”致歉,称希望尽早达成解决方案
  • 银川市长信箱被指乱回复:问诗词大会、答工程欠款,官方称工作失误