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

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。
通过这种方式,你可以在容器中直接访问宿主机上的文件,方便开发和调试。
注意事项
路径问题:确保宿主机路径和容器路径正确无误。
权限问题:挂载卷时,容器内的用户需要有足够的权限访问挂载的目录或文件。
数据持久化:如果需要持久化数据,建议使用命名卷。

http://www.xdnf.cn/news/9297.html

相关文章:

  • Fast-DDS Spy 工具
  • 2025CCPC河北省赛题解
  • (五)MMA(OpenTelemetry/Rabbit MQ/)
  • 图论学习笔记 4 - 仙人掌图
  • ROS云课三分钟-3D性能测试supertuxkart和游戏推荐等-国际象棋
  • 子序列相关题目总结
  • 数据结构与算法Day3:绪论第三节抽象数据类型、算法及其描述
  • 图论回溯
  • Linux基本指令篇 —— touch指令
  • SOC-ESP32S3部分:16-I2C
  • java常用工具类:生成唯一id
  • 对称二叉树
  • STM32F407VET6学习笔记5:STM32CubeMX配置串口工程_HAL库
  • 互联网大厂Java求职面试:从Spring到微服务的技术探讨
  • go tour方法和接口
  • 解决Linux下C++智能指针编译错误:`_Lock_policy`未定义问题
  • 高光谱成像相机应用:纸质文物“狐斑”无损检测
  • 华为HCIP-Cloud-Service认证H13-821V2.0-002
  • Qtc++开发遇到的问题-按钮点击不管用?
  • “以光惠算”走进校园,湖北大学用F5G-A全光网赋能智慧校园
  • 服务发现Nacos
  • 以少学习:通过无标签数据从大型语言模型进行知识蒸馏
  • HTTP/2与HTTP/3特性详解:为你的Nginx/Apache服务器开启下一代Web协议
  • Unity 游戏优化(持续更新中...)
  • React从基础入门到高级实战:React 核心技术 - 动画与过渡效果:提升 UI 交互体验
  • 前端八股之HTML
  • mobaxterm通过ssh登录docker无图形界面
  • 自然语言处理入门及文本预处理
  • 华为云Flexus+DeepSeek征文|ModelArts Studio开通DeepSeek-V3与R1商用服务实践与体验
  • 速通《Sklearn 与 TensorFlow 机器学习实用指南》