Docker run -v 的 rw 和 ro 模式_docker ro

一、前言

在使用 Docker 启动容器时,通常需要将宿主机的文件或目录挂载到容器中,以便于管理配置、持久化数据和调试日志。本篇博客将重点介绍 -v/--volume 参数的使用方式、挂载权限(rwro)的区别,以及如何通过 docker inspect 命令查看挂载详情。

二、为什么需要挂载卷

  • 配置管理便利:不挂载时,修改容器内配置需要进入容器执行命令;挂载后,可直接在宿主机上编辑配置文件即可生效。
  • 日志持久化与查看:容器日志默认存放在容器内,通过挂载宿主目录可快速定位和分析日志。
  • 数据持久化:容器被销毁后,未挂载的文件将随之丢失;挂载卷可保证数据在容器重建后依然保留。

以 Nginx 为例:

  • 未挂载时:需使用 docker exec -it <container> /bin/sh 进入容器内,编辑 /etc/nginx/nginx.conf,并重启服务。
  • 挂载时:只需在宿主机编辑本地的 nginx.conf,保存后容器内配置自动更新。

三、挂载权限:rorw 与默认模式

模式 文件操作表现
不指定 等同于 rw,读写挂载;
ro 只读挂载:• 文件 :容器内无法修改;• 目录 :容器内无法新增/删除或修改包含的文件,会提示 read-only
rw 读写挂载:• 文件 :宿主机与容器内的修改会相互同步,但容器内删除宿主机文件可能报错 Device or resource busy;• 目录:所有新增、修改、删除操作均可双向同步。

默认模式即不指定时,Docker 会将挂载视为 rw

四、查看挂载信息:docker inspect

使用 docker inspect <容器ID或名称>,在返回的 JSON 中查找 Mounts 数组,即可看到挂载列表及详细属性:

json 复制代码
"Mounts": [
  {
    "Type": "bind",
    "Source": "/Users/yuanmomo/Documents/docker/nginx/conf/nginx.conf",
    "Destination": "/etc/nginx/conf/nginx.conf",
    "Mode": "rw",
    "RW": true,
    "Propagation": "rprivate"
  },
  {
    "Type": "bind",
    "Source": "/Users/yuanmomo/Documents/docker/nginx/html",
    "Destination": "/usr/share/nginx/html",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
]
  • Type :挂载类型(bind 表示目录绑定)。
  • Source:宿主机路径。
  • Destination:容器内路径。
  • Mode :读写模式(rwro 或空表示默认 rw)。

五、最佳实践

  1. 使用目录映射:优先挂载目录代替单个文件,可避免容器应用重启或覆盖时出现加载失败。
  2. 配置文件管理 :将配置目录集中管理,如 /etc/nginx/conf.d/,通过映射方式加载多份配置。
  3. 日志分离:将日志文件目录挂载到宿主机指定目录,以便于统一收集和分析。
  4. 权限控制 :生产环境中建议对敏感目录使用 ro 模式,降低误操作风险。

六、结语

本文介绍了 Docker 挂载卷的基本使用方法、rorw 模式的差异,以及如何通过 docker inspect 查看挂载信息。希望能帮助大家在日常容器管理中更加高效、可靠地使用挂载卷。

相关推荐
hjxu20163 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
Stewie121386 小时前
Docker 面试题
运维·docker·容器
vpk1126 小时前
Docker Compose 安装 Redis
redis·docker·容器
last demo8 小时前
Docker-compose和图形界面管理
docker·容器·eureka
好像不对劲10 小时前
【docker】win10 wsl docker不能挂GPU
运维·docker·容器·wsl
江畔何人初11 小时前
Docker、containerd、CRI、shim 之间的关系
运维·docker·云原生·容器·kubernetes
杨浦老苏11 小时前
在线视频播放器YT-DLP Web Player
docker·工具·群晖·下载·多媒体
ALex_zry11 小时前
Docker Compose 配置文件完全指南:从基础到生产级安全实践
服务器·安全·docker
万象.13 小时前
docker镜像仓库
运维·docker·容器
姚不倒13 小时前
Docker 核心原理与运维实战:从入门到生产级理解
运维·docker·架构