You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将/dev/sdb9磁盘分区挂载到Docker容器中?

将SD卡分区/dev/sdb9挂载到Docker容器的解决方案

问题背景

通过sudo blkid获取到SD卡分区信息,其中目标分区为:

/dev/sdb9: UUID="51e83a43-830f-48de-bcea-309a784ea35c" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="rootfs" PARTUUID="c58164a5-704a-4017-aeea-739a0941472f"

尝试将其挂载到Docker容器时执行了以下命令:

docker volume create --driver=local --opt type=ext4 --opt device=/dev/disk/by-uuid/51e83a43-830f-48de-bcea-309a784ea35c my-vol
docker run <image id> -v my-vol:/my-vol -it bash

出现错误:

failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "-v": executable file not found in $PATH: unknown.

错误原因

docker run命令的参数顺序错误:所有选项(如-v、-it)必须放在镜像ID/名称之前,否则Docker会将-v识别为容器内要执行的命令,导致找不到可执行文件的错误。

正确操作方法

方法一:使用预先创建的Volume

  1. 确认Volume已创建(你之前的创建命令是正确的,无需修改):
docker volume create --driver=local --opt type=ext4 --opt device=/dev/disk/by-uuid/51e83a43-830f-48de-bcea-309a784ea35c my-vol
  1. 修正docker run的参数顺序,将-v选项移到镜像ID前面:
docker run -v my-vol:/my-vol -it <image id> bash

方法二:直接绑定挂载设备(无需提前创建Volume)

如果只是临时操作,可直接将分区设备路径挂载到容器内,省略Volume创建步骤:

# 使用设备路径
docker run -v /dev/sdb9:/my-vol -it <image id> bash

# 或使用UUID路径(更稳定)
docker run -v /dev/disk/by-uuid/51e83a43-830f-48de-bcea-309a784ea35c:/my-vol -it <image id> bash

注意事项

  • 若要在容器内执行格式化、分区修改等操作,需要赋予容器足够的权限,建议添加--privileged参数(注意:该参数会赋予容器接近主机的权限,仅在必要时使用):
docker run --privileged -v my-vol:/my-vol -it <image id> bash
  • 确保主机系统未挂载该分区,否则容器内无法对其进行格式化等写入操作。

内容的提问来源于stack exchange,提问作者jake wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:25:23