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

doucker 挂载卷

在 Docker 中,挂载卷(Volumes)是一种非常重要的功能,它允许你将宿主机的文件系统与容器的文件系统进行共享。挂载卷不仅可以用于持久化数据,还可以用于在宿主机和容器之间传递文件。
挂载卷的类型
Docker 支持多种类型的挂载卷,主要包括以下几种:
绑定挂载(Bind Mounts):将宿主机的目录或文件直接挂载到容器内部。
命名卷(Named Volumes):由 Docker 管理的存储在宿主机上的卷,具有名称。
匿名卷(Anonymous Volumes):没有名称的卷,通常用于临时存储。
tmpfs 挂载:将数据存储在内存中,容器停止后数据丢失。
示例:使用挂载卷
1. 绑定挂载(Bind Mounts)
绑定挂载是最常用的挂载方式,可以直接将宿主机的目录或文件映射到容器内部。
示例命令:
bash
复制
docker run -d -p 80:80 --name my-webapp -v /path/to/host:/path/to/container nginx
-v /path/to/host:/path/to/container:将宿主机的 /path/to/host 目录挂载到容器的 /path/to/container 目录。
nginx:使用 Nginx 镜像运行容器。
示例场景:
假设你在宿主机的 /var/www/html 目录中有一些静态网页文件,希望将它们挂载到 Nginx 容器的 /usr/share/nginx/html 目录中,可以使用以下命令:
bash
复制
docker run -d -p 80:80 --name my-webapp -v /var/www/html:/usr/share/nginx/html nginx
2. 命名卷(Named Volumes)
命名卷由 Docker 管理,具有名称,便于在多个容器之间共享和重用。
创建命名卷:
bash
复制
docker volume create myvolume
使用命名卷:
bash
复制
docker run -d -p 80:80 --name my-webapp -v myvolume:/usr/share/nginx/html nginx
3. 匿名卷(Anonymous Volumes)
匿名卷没有名称,通常用于临时存储,容器删除后,匿名卷也会被删除。
使用匿名卷:
bash
复制
docker run -d -p 80:80 --name my-webapp -v /usr/share/nginx/html nginx
4. tmpfs 挂载
tmpfs 挂载将数据存储在内存中,容器停止后数据丢失。
使用 tmpfs 挂载:
bash
复制
docker run -d -p 80:80 --name my-webapp --mount type=tmpfs,destination=/usr/share/nginx/html nginx
挂载卷的管理
Docker 提供了一些命令来管理挂载卷:
查看所有挂载卷
bash
复制
docker volume ls
查看挂载卷的详细信息
bash
复制
docker volume inspect myvolume
删除挂载卷
bash
复制
docker volume rm myvolume
清理未使用的挂载卷
bash
复制
docker volume prune
示例:在 ROS 2 容器中使用挂载卷
假设你正在运行一个 ROS 2 容器,并希望将宿主机上的工作空间挂载到容器中,可以使用以下命令:
bash
复制
docker run -it -v /path/to/host/workspace:/root/ros2_ws osrf/ros:humble-desktop-full-jammy /ros_entrypoint.sh bash
-v /path/to/host/workspace:/root/ros2_ws:将宿主机的 /path/to/host/workspace 目录挂载到容器的 /root/ros2_ws 目录。
osrf/ros:humble-desktop-full-jammy:使用 ROS 2 Humble 镜像。
/ros_entrypoint.sh bash:进入交互式 Bash shell。
通过这种方式,你可以在容器中直接访问宿主机上的文件,方便开发和调试。
注意事项
路径问题:确保宿主机路径和容器路径正确无误。
权限问题:挂载卷时,容器内的用户需要有足够的权限访问挂载的目录或文件。
数据持久化:如果需要持久化数据,建议使用命名卷。

相关文章:

  • 零基础设计模式——结构型模式 - 装饰器模式
  • ubuntu 制作 ssl 证书
  • 通过ansible playbook创建azure 资源
  • 电子邮箱设置SSL:构建邮件传输的加密护城河
  • 解决Qt 打包的软件缺少dll问题
  • UDP 传输时间(延迟)
  • 记录:训练过程中可训练参数出现nan和inf造成loss为nan
  • 2025年6月亲测可用 | 剪映免SVIP版本 | 支持数字人
  • 8.安卓逆向2-frida hook技术-frida环境安装
  • 利用亮数据实现大规模数据自动抓取
  • 如何验证 AXI5 原子操作
  • Linux 进阶命令篇
  • (自用)Java学习-5.19(地址管理,三级联动,预支付)
  • WSL连接网络
  • 【观成科技】Ymir勒索软件组织窃密木马RustyStealer加密通信分析
  • 联软科技统一安全工作空间:零信任架构下的远程办公数据安全守护者
  • 塔能科技:有哪些国内工业节能标杆案例?
  • vue3基本类型和对象类型的响应式数据
  • [Vue组件]比例环形编辑
  • 【前端】【Vue3】vue3性能优化总结
  • 煤矿网站建设/搜索引擎seo关键词优化方法
  • 建设自有网站需要什么/经典营销案例
  • 做国际网站的流程/公司网站建设费
  • 河北省建设执业注册中心网站/百度数据开放平台
  • 放网站的图片做多大分辨率/想做游戏推广怎么找游戏公司
  • 创业众筹平台/国外网站谷歌seo推广